2017-02-17 84 views
0

我有陣列的列表或陣列的陣列看起來像在python中繪製同一個圖上的數組列表?

a=[array1([.....]),array2([.....]),array3([....]),.....] 

和一個獨立的數組b(未列表)

b=np.array[()] 

所有該列表中的陣列的「a」是與「b」相同的長度和相同的長度。我想繪製y軸上的列表「a」中的所有數組和x軸上的「b」上的所有數組,都在同一個繪圖上。因此,一個由[0]與b,a [1]與b,a [2]與b,...等等組成的情節。

我該怎麼做?

我試圖

f, axes = plt.subplots(len(a),1) 
for g in range(len(a)): 
    axes[g].plot(b,a[g]) 
    plt.show() 

,但是這給了我彼此堆疊的許多情節,他們甚至沒有所有的數據。我想在一個情節上的一切。

回答

0

我剛剛發現了一些應該完成此工作的舊代碼。嘗試:

import random 
import matplotlib.pyplot as plt 
from matplotlib import cm 
import numpy as np 

# define a and b here 

# Helps pick a random color for each plot, used for readability 
rand = lambda: random.randint(0, 255) 
fig = plt.figure(figsize=(10,7.5)) 
ax = fig.add_subplot(111) 
for ydata in a: 
    clr = '#%02X%02X%02X' % (rand(),rand(),rand()) 
    plot, = ax.plot(b, ydata, color=clr) 

編輯:要生成一組相同的顏色每一次,如回答this post,嘗試:

colors = cm.rainbow(np.linspace(0, 1, len(a))) 
for ydata, clr in zip(a, colors): 
    plot, = ax.plot(b, ydata, color=clr) 

np.linspace給你「在指定的時間間隔均勻地間隔號」, [0,1]爲此目的。

+0

謝謝,這工作得很好。有沒有辦法讓顏色始終保持一致?所以所有的地塊都有不同的顏色,但每次我繪製時,它們都保持相同的顏色。 –

+0

是的,這絕對有可能。我沒有嘗試過,但看到編輯。 – sgrg

+0

謝謝!你真棒! –

0

您必須只定義一個子圖並在同一軸上繪製所有數組。

fig, ax = plt.subplots(1, 1) 
for g in range(len(a)): 
    ax.plot(b, a[g]) 
plt.show() 
相關問題