2
Thanks to Jake Vanderplas,我知道如何開始使用matplotlib
編碼一個動畫圖。下面是一個示例代碼:用matplotlib中的for循環定義多個圖形進行動畫製作
from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(0, 100))
line, = plt.plot([], [])
def init():
line.set_data([], [])
return line,
def animate(i):
line.set_data([0, 2], [0,i])
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
假設現在我想繪製噸的功能(說,四名在這裏),用循環的幫助下定義。我做了一些巫術編程,試圖理解如何模仿逗號後面的行,這是我得到的(不用說,它不起作用:AttributeError: 'tuple' object has no attribute 'axes'
)。
from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(0, 100))
line = []
N = 4
for j in range(N):
temp, = plt.plot([], [])
line.append(temp)
line = tuple(line)
def init():
for j in range(N):
line[j].set_data([], [])
return line,
def animate(i):
for j in range(N):
line[j].set_data([0, 2], [10 * j,i])
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
一些我的問題是:我怎樣才能使它發揮作用?獎金(可能已鏈接):line, = plt.plot([], [])
和line = plt.plot([], [])
之間有什麼區別?
感謝
非常感謝。請問「plt.plot'列表的第一個元素是」什麼「? – cjorssen
'plt.plot'返回'matplotlib.artist.Artist'列表,所以當你只繪製一行時,它會返回一個只包含一個項目的列表:'matplotlib.lines.Line2D'藝術家。但是,如果您在'lines = plt.plot(*([[],[]] * N))中繪製了幾行,則它會返回列表中的所有行。 –
謝謝。最後一個問題。 'animate'的'return'中的'line'後面的逗號不是必需的嗎?如果我正確理解你的解決方案,就不會有這樣的逗號。 – cjorssen