Python Matplotlib动画未按预期工作

Python Matplotlib动画未按预期工作,python,animation,matplotlib,Python,Animation,Matplotlib,我正在使用python中的matplotlib和MovieWriter为球的路径逐帧设置动画。我希望在100帧的过程中绘制球的路径,因为最终结果看起来像黄金线(我的动画处理的唯一一条线)。然而,我最终在我的动画mp4视频中得到了一条不规则移动的线。我不能发布视频,但它的快照看起来像。这条线将端点从绘图周围的原点移开,但不会形成第一幅图像中描述的连贯线。我做错了什么?我的代码在下面 FFMpegWriter=manimation.writers['ffmpeg'] 元数据=dict(title=

我正在使用python中的matplotlib和MovieWriter为球的路径逐帧设置动画。我希望在100帧的过程中绘制球的路径,因为最终结果看起来像黄金线(我的动画处理的唯一一条线)。然而,我最终在我的动画mp4视频中得到了一条不规则移动的线。我不能发布视频,但它的快照看起来像。这条线将端点从绘图周围的原点移开,但不会形成第一幅图像中描述的连贯线。我做错了什么?我的代码在下面

FFMpegWriter=manimation.writers['ffmpeg']
元数据=dict(title='Movie Test',artist='Matplotlib',
评论(电影支持!)
writer=FFMpegWriter(fps=15,metadata=metadata)
导入glob
#plt图
图=plt.图()
#获取包含数据的特定文件
fn=glob.glob(r“C:\Users\Admin\Desktop\STATS\u basketball\u tracking\anon\train\specificfile”)
#法庭的图景
img=plt.imread(r“C:\Users\Admin\Pictures\Capture4.png”)
plt.imshow(img,zorder=0,extent=[0,47,0,50])
tups=bball.stats\u basketball.read\u tuples(fn)
positions=bball.stats\u basketball.get\u positions(tups)
goals=bball.stats\u basketball.get\u goals(tups)
球=位置[0]
#初始x和y坐标(第0列=x坐标第1列=y坐标)
x0=球[0,0]
y0=球[0,1]
lball,=plt.绘图([x0],[y0],color=“goldenrod”)
使用writer.saving(图,“writer\u test.mp4”,100):
对于范围(100)内的i:
对于球[:,0]中的行:
对于球[:,1]中的第1行:
x0=[int(行),0]
y0=[int(第1行),1]
lball.set_数据(x0,y0)
图canvas.draw()

writer.grab_frame()
很难从您的代码中说出,因为我们不知道您的数据是什么样子的。你能用一些“假数据”把这件事简化成一件事吗?我猜您一次只能绘制一个点,而您更希望从每个文件中收集数据并从中“增长”一行。另外,我认为您不应该为每个帧调用
plt.plot
,而是在每次迭代时调整线条(
lball
)。@ThomasKühn感谢您的建议!我在代码中添加了一些注释,在对代码进行了一点压缩之后,对大家都有所帮助。数据是一个2列矩阵,第一列具有篮球路径的x坐标行,第二列相同,但具有y坐标。我将如何在每次迭代时调整该行?SETU数据不是正确的吗?非常感谢。我认为你的问题在于你更新数据的方式。不要使用
x0=[int(row),0]
,而是尝试使用
x0.append(int(row))
和类似的
y0
。否则,两点之间总是有一条直线。