0
我想在matplotlib的動畫中顯示已用時間。我創建了一個文本實例,但是當我嘗試更新它時(基於幀編號),沒有任何更改。下面是部分代碼:在matplotlib中顯示已用時間(幀數)
fig = plt.figure()
ax = plt.axes(xlim =(-4E8,4E8), ylim= (-4E8,4E8))
time_text = ax.text(0.05, 0.95,'',horizontalalignment='left',verticalalignment='top', transform=ax.transAxes)
def init():
for line, pt in zip(lines, pts):
line.set_data([], [])
pt.set_data([], [])
time_text.set_text('hello')
return lines + pts
return time_text
def animate(i):
i = (10 * i) % data.shape[1]
#update lines and points here
for line, pt, dt in zip(lines,pts, data):
x, y, z = dt[:i].T
line.set_data(x, y)
pt.set_data(x[-1:], y[-1:])
time_text.set_text('time = %.1d' % i) #<<<<<Here. This doesn't work
return lines + pts
return time_text
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=700, interval=1, blit=True)
plt.show()
的時間取決於幀數,所以我嘗試這樣做:
time_text.set_text('time = %.1d' % i)
,但它沒有更新(保持「你好」)。
任何想法?我究竟做錯了什麼?
@tcaswellare:你確定它永遠不會被打?我確實看到了「你好」。如果我改變它到你說的我得到'TypeError:只能連接列表(而不是「元組」)列表' – user1830663 2013-05-12 22:30:33
我錯過了什麼類型的'線路'和'pts'是。錯誤消息告訴你_exactly_什麼是錯的。我相當確信第二次迴歸沒有受到打擊。 – tacaswell 2013-05-12 22:43:51
謝謝。這樣可行。我沒有意識到你只是把文本對象放在一個列表(元組)中。 – user1830663 2013-05-12 22:56:06