2 回答

TA贡献1875条经验 获得超5个赞
我遇到了这个问题(但对于 set_ylim)并且我对@ImportanceOfBeingErnest 的评论进行了一些试验和错误,这就是我得到的。
def animate(i):
x.append(i + 1)
y.append(10)
ax.set_xlim(min(x), max(x)) #added ax attribute here
line.set_data(x, y)
return line,
# call the animator. blit=True means only re-draw the parts that have changed.
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=500, interval=20)

TA贡献1829条经验 获得超4个赞
即使blit=True
您向画布发送调整大小事件,强制 MPL 刷新画布,也有一种解决方法。需要明确的是,@fffff 答案中的代码不适用于 blit 的事实是 MPL 代码库中的一个错误,但如果您fig.canvas.resize_event()
在设置新的 x 轴后添加,它将在 MPL 3.1.3 中工作。当然,您应该只是偶尔这样做才能真正从 blitting 中获得任何好处——如果您每帧都这样做,那么无论如何您只是在执行非 blit 过程,但需要额外的步骤。
添加回答
举报