【问题标题】:Exception during matplotlib animationmatplotlib 动画期间的异常
【发布时间】:2020-08-30 12:48:19
【问题描述】:

这是我第一次在这里发帖。我正在运行这个代码,它是一个 matplotlib(版本 3.2.1)动画示例,所以它应该可以正常工作。

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
plt.rcParams['animation.ffmpeg_path'] = '/opt/local/bin/ffmpeg'

# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)

# initialization function: plot the background of each frame
def init():
    line.set_data([], [])
    return line

# animation function.  This is called sequentially
def 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.html
anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])

plt.show()

但是,我收到了这个错误:

Traceback(最近一次调用最后一次): 文件“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(作家,无) TypeError:“MovieWriterRegistry”对象不是迭代器 /home/leonardo/.local/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3.py:195:警告:尝试删除源 ID 8 时未找到它 GLib.source_remove(self._idle_draw_id)

任何想法将不胜感激。

【问题讨论】:

  • 几项检查: 1. 你能单独使用 plt.show() 看到你的动画吗(在评论你的 anim.save() 行之后)? 2.你用的是哪个版本的python?使用早于 3.2 的某些先前版本的 matplotlib 是否可以重现此问题? github.com/matplotlib/matplotlib/issues/16965
  • 感谢您的回复。 1. 是的,我可以检查我的动画。 2.Python 3.6.9。我不知道这个问题在旧版本中是否可以重现。我在github上看到过这个问题,但是到现在还没有任何更新。

标签: python matplotlib animation ffmpeg


【解决方案1】:

这是 matplotlib 最新版本中的一个已知错误;它将在下一个版本(#16965)中修复。来自 github issse:https://github.com/matplotlib/matplotlib/issues/17097

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多