使用Matplotlib FuncAnimation展示格子玻尔兹曼模拟结果的问题求助
使用Matplotlib FuncAnimation展示格子玻尔兹曼模拟结果的问题求助
大家好,我现在正在做一个格子玻尔兹曼模拟,这是我的第一个Python项目。
虽然我已经做出了能正常运行的模拟,但在Spyder中使用Matplotlib的FuncAnimation时遇到了难题。
我把模拟产生的所有数据都存在了一个NumPy二维数组里——这个数组中,每一列存储的是时间t的所有数据点,下一列则对应时间t+dt的数据。
模拟会生成大量数据,我目前做的小型测试就有37个数据点、400个时间步,所以我想制作一个动画来直观观察数据随时间的演变过程。
但我怎么都没法用FuncAnimation做出正常运行的动画,我现在用的代码是这样的:
fig, ax = plt.subplots() plt.ylim([0,2]) line=ax.plot(h[:,0]) def update(num): line.set_xdata(h[:,num]) return (line) ani = animation.FuncAnimation(fig, update, frames=(np.size(h)), interval=20) plt.show()
注:h就是我上面提到的二维数组。现在这段代码只显示了初始时间步的静态图,完全没有动画效果,我实在搞不清哪里出错了。如果有人能发现问题并提供帮助,我会非常感谢!
备注:内容来源于stack exchange,提问作者DrPopart
相关产品推荐
相关产品推荐

