我正在学习如何在python中为我的一个项目制作动画,并且我的代码基于here中的以下示例。
我对他们的代码的调整如下:
import numpy as np
import h5py, os, glob, sys, time
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
def update(i):
for j in np.arange(0,10):
for k in np.arange(0,10):
for channel in ["N","E"]:
x = some_x_value
y = some_y_value
line = plt.loglog(x,y)
ax.set_xlabel(label)
return line, ax
if __name__ == "__main__":
fig, ax = plt.subplots()
anim = FuncAnimation(fig, update, frames=np.arange(0,10), interval=200)
anim.save('Test.gif', dpi=80, writer='imagemagick')
当我尝试运行脚本时,我收到以下错误: 名称错误:未定义名称“更新”。
正如我之前所说,我仍然在学习如何制作动画,并且不理解我发现的代码教程中发生的所有事情。但是,我很困惑为什么更新根本不被识别,因为我调用update的方式似乎与教程中的内容完全相同。
答案 0 :(得分:0)
import numpy as np
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
def update(i, ln):
i = i+1
x = i
y = i ** 2
x_data = ln.get_xdata()
y_data = ln.get_ydata()
ln.set_data(np.concatenate(([x], x_data)),
np.concatenate(([y], y_data)))
return ln
if __name__ == "__main__":
fig, ax = plt.subplots()
ax.set_xlim(1, 10)
ax.set_ylim(1, 100)
line, = ax.loglog([1], [1])
anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200,
fargs=(line, ))
anim.save('Test.gif', dpi=80, writer='imagemagick')
按预期工作。这让我觉得你的代码中还有一些其他错误被掩盖了。