我正在嘗試使用單個標記在同一張圖上繪制一系列曲線:
- 每條曲線都有一種顏色
- 每個資料點都有自己的標記
為此,我創建了 3 個串列串列x_data:y_data和markers。使用np.array(),x_data和y_data可以正確繪制為不同的曲線(使用單獨的顏色)。
但是,np.array()不能與屬性一起使用marker,我不知道如何傳遞markers給ax.plot().
有人知道如何對單個標記進行歸因嗎?
MWE
import matplotlib.pyplot as plt
import numpy as np
x_data=[[1,2,3,4,5],[5,10,3,8,6]]
y_data=[[5,10,3,8,6],[1,2,3,4,5]]
markers=[["o"," ","D"," ","D"],["D","o","o","D"," "]]
fig, ax = plt.subplots()
for n in range(0,len(x_data)):
ax.plot(np.array(x_data[n]), np.array(y_data[n]),linewidth=1,marker=np.array(markers))
plt.show()
uj5u.com熱心網友回復:
一個選項是一個內部回圈來單獨散點圖每個標記:
import matplotlib.pyplot as plt
import numpy as np
x_data=[[1,2,3,4,5],[5,10,3,8,6]]
y_data=[[5,10,3,8,6],[1,2,3,4,5]]
markers=[["o"," ","D"," ","D"],["D","o","o","D"," "]]
fig, ax = plt.subplots()
for xs, ys, markers in zip(x_data, y_data, markers):
line = ax.plot(xs, ys, linewidth=1)
colour = line[0].get_color()
for x, y, marker in zip(xs, ys, markers):
ax.scatter(x, y, marker=marker, color=colour)
plt.show()
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522656.html
上一篇:Flutter-復制物件串列
