我无法弄清楚如何在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
理想情况下,应该使用文本边界框(因为它是从动画函数传递的),但由于某种原因它没有被使用(即使我认为它是在艺术家中)。这是现在修复它的一个合理的窍门。 :) 谢谢! –