gpt4 book ai didi

python - 我的 matplotlib ArtistAnimation 做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:58 24 4
gpt4 key购买 nike

我正在尝试使用以下代码创建动画,但我无法让它工作。

def plotSimulation(currentState, startState):
import matplotlib.pyplot as plt
import matplotlib.animation as ani
import numpy as np
import matplotlib.patches as mpatches
import matplotlib.collections as collections

fig1 = plt.figure()
ax = plt.subplot()

numberOfFrames = currentState.shape[2]


frames = []

for frame in np.arange(numberOfFrames):
carPatches = []
for car in range(0, currentState.shape[0]):
carPatches.append(mpatches.Rectangle([currentState[car,0,frame],currentState[car,1,frame]], startState[car, 2], startState[car, 3], angle=startState[car, 4]))
carCollection = collections.PatchCollection(carPatches)
frames.append((carCollection,))


simulationAnimation = ani.ArtistAnimation(fig1, frames, interval=50, repeat_delay=300, blit=False)

plt.show()

我试图从这个例子中复制 http://matplotlib.org/examples/animation/basic_example.html

图2的动画

但是当我尝试运行我的动画时,我得到:

File "...plotIteration.py", line 24, in plotSimulation
simulationAnimation = ani.ArtistAnimation(fig1, frames, interval=50, repeat_delay=300, blit=False)

File ".../python/matplotlib/animation.py", line 934, in __init__
TimedAnimation.__init__(self, fig, *args, **kwargs)

File ".../python/matplotlib/animation.py", line 878, in __init__
*args, **kwargs)

File ".../python/matplotlib/animation.py", line 559, in __init__
self._init_draw()

File ".../Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/animation.py", line 948, in _init_draw
ax.figure.canvas.draw()

AttributeError: 'NoneType' object has no attribute 'figure'

最佳答案

我认为问题在于您已经创建了 PatchCollections,但尚未将它们添加到坐标区。你应该可以用 ax.add_collection 做到这一点

尝试将 carCollection 附加到 frames 的行更改为如下内容:

frames.append(ax.add_collection(carCollection))

关于python - 我的 matplotlib ArtistAnimation 做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35612263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com