import matplotlib.image as mpimgimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfrom matplotlib.widgets import Buttonfrom matplotlib.widgets import Sliderfig = plt.figure()image_list = ['downloads/20120831_194836_aia.lev1_euv_12s_4k.jpg', 'downloads/20120831_194936_aia.lev1_euv_12s_4k.jpg', 'downloads/20120831_195036_aia.lev1_euv_12s_4k.jpg']list = []for raw_image in image_list: image1 = mpimg.imread(raw_image) real_image1 = plt.imshow(image1) list.append([real_image1])def update_plot(t): print(t) return list[t]anim = animation.FuncAnimation(fig, update_plot, repeat = True, interval=1, blit=False, repeat_delay=200)plt.show()我正在尝试使用列表中的 3 个 jpg 图像创建一个 func 动画。程序运行 3 个图像 1 次后,出现错误。当我打印“打印”时,它永远不会重置为 0。错误:Traceback (most recent call last): File "/Users/jamisenma/opt/anaconda3/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 1194, in _on_timer ret = func(*args, **kwargs) File "/Users/jamisenma/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1447, in _step still_going = Animation._step(self, *args) File "/Users/jamisenma/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1173, in _step self._draw_next_frame(framedata, self._blit) File "/Users/jamisenma/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1192, in _draw_next_frame self._draw_frame(framedata) File "/Users/jamisenma/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1755, in _draw_frame self._drawn_artists = self._func(framedata, *self._args) File "/Users/jamisenma/Library/Application Support/JetBrains/PyCharmCE2020.1/scratches/scratch_59.py", line 19, in update_plot return list[t]IndexError: list index out of range有谁知道问题是什么?
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
您未能提供预期的MRE,也没有进行预期的初始调试工作。因此,我不能确定。
但是,我最大的怀疑是来自的返回update_plot,它使用了一个您未能向我们展示的参数——并将其用作隐藏预定义类型的全局序列的下标。
尝试使用这种简单的技术进行调试:
def update_plot(t):
print("ENTER update_plot; t =", t, "\n list =", list)
print(t)
return list[t]
我希望,就在您失败之前,您会看到这一点t >= len(list)。
一般提示:不要为变量提供与内置或预定义名称相同的名称。特别是,改变list.
添加回答
举报
0/150
提交
取消