【问题标题】:animating a surface with matplotlib使用 matplotlib 为表面设置动画
【发布时间】:2015-05-28 03:22:28
【问题描述】:

我正在尝试使用 matplotlib 的内置动画例程为表面设置动画,但我不确定我哪里出错了。我正在从磁盘加载一些文件,如下所示:

def update_profile(j):
    File('u'+str(j)+'.xml')>>u
    u_tri = u.compute_vertex_values(mesh)
    ax.clear()
    plot = ax.plot_trisurf(mesh_tri, u_tri,cmap=cm.coolwarm,edgecolors='none')
    ax.set_title('$t$ = '+ str(dt * j))
    return plot,

fig =plt.figure()
ax = fig.gca(projection='3d')

animation.FuncAnimation(fig, update_profile, range(0,n_steps+1),
                              interval=10)
plt.show()

加载和绘制单个文件时没有问题。

【问题讨论】:

  • 你没有说问题是什么。你也没有提到任何错误信息。
  • 啊,对不起。所以它绘制了初始帧,然后什么都不做;没有错误,但它似乎永远不会更新图像。

标签: python matplotlib


【解决方案1】:

我想我解决了这个问题,但我不完全确定为什么。看了一些例子,一改就立马

animation.FuncAnimation(fig, update_profile, range(0,n_steps+1),
                              interval=10)

ani = animation.FuncAnimation(fig, update_profile, range(0,n_steps+1),
                              interval=10)

它按预期工作。有人知道为什么吗?

【讨论】:

  • 是的 - 在this answer 中有解释。这有点无证,但值得知道。可能值得用指向该答案的链接替换此答案中的最后一句话。基本上 - 对象需要持久化,所以必须分配给一个变量,否则它将......消失!
猜你喜欢
  • 2014-02-24
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2019-04-17
  • 1970-01-01
  • 2018-08-10
相关资源
最近更新 更多