这是我第一次在这里发帖。我正在运行这段代码,它是一个 matplotlib(版本 3.2.1)动画示例,所以它应该可以正常工作。import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib import animationplt.rcParams['animation.ffmpeg_path'] = '/opt/local/bin/ffmpeg'# First set up the figure, the axis, and the plot element we want to animatefig = plt.figure()ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))line, = ax.plot([], [], lw=2)# initialization function: plot the background of each framedef init(): line.set_data([], []) return line# animation function. This is called sequentiallydef animate(i): x = np.linspace(0, 2, 1000) y = np.sin(2 * np.pi * (x - 0.01 * i)) 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=200, interval=20, blit=True)# save the animation as an mp4. This requires ffmpeg or mencoder to be# installed. The extra_args ensure that the x264 codec is used, so that# the video can be embedded in html5. You may need to adjust this for# your system: for more information, see# http://matplotlib.sourceforge.net/api/animation_api.htmlanim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])plt.show()但是,我收到此错误:回溯(最近调用最后):文件“matplotlib_animation.py”,第 42 行,在 anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264']) 文件“/home /leonardo/.local/lib/python3.6/site-packages/matplotlib/animation.py”,第 1102 行,保存 alt_writer = next(writers, None) TypeError: 'MovieWriterRegistry' object is not an iterator /home/leonardo /.local/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3.py:195: 警告:尝试删除源 ID 8 时未找到它 GLib.source_remove(self._idle_draw_id)任何想法将不胜感激。
1 回答
Helenr
TA贡献1780条经验 获得超3个赞
这是最新版本的 matplotlib 中的一个已知错误;它将在下一个版本(#16965)中修复。来自 github issse:https ://github.com/matplotlib/matplotlib/issues/17097
添加回答
举报
0/150
提交
取消