這是我第一次在這里發帖。我正在運行這段代碼,它是一個 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條經驗 獲得超4個贊
這是最新版本的 matplotlib 中的一個已知錯誤;它將在下一個版本(#16965)中修復。來自 github issse:https ://github.com/matplotlib/matplotlib/issues/17097
添加回答
舉報
0/150
提交
取消