我無法弄清楚如何在FuncAnimation情節(使用blit)上獲得動畫標題。基於http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/和Python/Matplotlib - Quickly Updating Text on Axes,我已經構建了一個動畫,但文本部分不會動畫。簡單的例子:matplotlib中的動畫標題
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
vls = np.linspace(0,2*2*np.pi,100)
fig=plt.figure()
img, = plt.plot(np.sin(vls))
ax = plt.axes()
ax.set_xlim([0,2*2*np.pi])
#ttl = ax.set_title('',animated=True)
ttl = ax.text(.5, 1.005, '', transform = ax.transAxes)
def init():
ttl.set_text('')
img.set_data([0],[0])
return img, ttl
def func(n):
ttl.set_text(str(n))
img.set_data(vls,np.sin(vls+.02*n*2*np.pi))
return img, ttl
ani = animation.FuncAnimation(fig,func,init_func=init,frames=50,interval=30,blit=True)
plt.show()
如果blit=True
被刪除,文本顯示出來,但它減緩一路下滑。它似乎失敗,plt.title
,ax.set_title
和ax.text
。
編輯:我發現爲什麼第一個鏈接的第二個例子工作;該文本在img
部分。如果你使上述1.005
a .99
,你會明白我的意思。有可能是一種方式具有邊框,不知何故做到這一點...
這工作全速!希望它被包含在matplotlib中,與猴子修補,但效果很好! –
@HenrySchreiner您的編輯應該已被接受。 (我剛剛重新做到了)。如果這解決了你的問題,你可以接受答案(左邊的大灰色複選框)。 – tacaswell
理想情況下,應該使用文本邊界框(因爲它是從動畫函數傳遞的),但由於某種原因它沒有被使用(即使我認爲它是在藝術家中)。這是現在修復它的一個合理的竅門。 :) 謝謝! –