我正在尝试对一些时间相关数据的空间坐标的维格纳函数进行动画制作。wigner函数是二维的,所以我使用contourf()来绘制它。我把数据存储在一个HDF5文件中,可以让Wigner在飞行中进行分布,但我不知道如何对其进行动画处理。我所能找到的所有动画教程和示例(例如this onethis one)都严格适用于线图。具体来说,他们的animate(i)函数使用的是line.set_data(),我似乎找不到与contourf()等效的函数。
如何对使用contourf()制作的图像制作动画?
contourf()等于什么?

最佳答案

有一个简单的方法可以用FuncAnimation来完成:
必须具有一个清除轴并基于帧号绘制新轮廓的函数。不要忘记将blit设置为False

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

DATA = np.random.randn(800).reshape(10,10,8)


fig,ax = plt.subplots()

def animate(i):
       ax.clear()
       ax.contourf(DATA[:,:,i])
       ax.set_title('%03d'%(i))

interval = 2#in seconds
ani = animation.FuncAnimation(fig,animate,5,interval=interval*1e+3,blit=False)

plt.show()

关于python - 如何用contourf()制作动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23070305/

10-12 18:26