[英]Plotting two different sized arrays with matplotlib
我想使用 matplotlib 來繪制我的數據。 我想在同一張圖上繪制 4 個不同的 y 值,以便我可以比較這 4 個。目前,我的“x”數據是一個大小為 10 的數組:
x: [1,2,3,4,5,6,7,8]
我的 y 數據有 3 個值,是:
y: [[0.6, 0.3, 0.4], [0.2, 0.5, 0.4], [0.6, 0.3, 0.4], .... etc.]
每個嵌套數組對應於該 x 值。 因此,對於 x=1,不同的 y 值為 0.6、0.3、0.4。
我怎樣才能把這些都畫在一張圖上?
謝謝。
您可以在繪圖前將列表 (y) 列表轉換為更合適的格式,並使用 for 循環在同一圖形中繪圖。
試試這個例子(是基本的):
def plotting(y):
new_y = [ [sublist[i] for sublist in y] for i in range(len(y[0])) ]
fig, axes = plt.subplots(1,1)
for sublist in new_y:
x = np.arange(0, len(sublist))
axes.plot(x, sublist)
return fig, axes
請注意,該方法的第一行創建了一個新的 y 列表。
# use
fig, ax = plotting(y)
使用zip
函數轉置y
,提取大小等於x
數組。 例如,
y1,y2,y3=list(zip(*y))
然后分別繪制 y1、y2 和 y3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.