我真的是 Python 编程新手,在我的最终项目中,我需要创建这个动画,其中 10 个点在空间中随机移动(布朗运动)。我的老师给了我一些例子,但我就是不明白为什么我的程序不能正常工作。错误说:"_included_frames frame_dir=os.path.dirname(frame_list[0]),索引错误:列表索引超出范围”对不起,如果我没有正确表达自己,但英语也不是我的母语。from math import *import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits import mplot3dimport matplotlib.animation as animationfig = plt.figure()ax = plt.axes(projection='3d')N=10x=500*np.random.random(N)y=500*np.random.random(N)z=500*np.random.random(N)def frame(w): ax.clear() x=x+np.random.normal(0.0,50.0,10) y=y+np.random.normal(0.0,50.0,10) z=z+np.random.normal(0.0,50.0,10) mensaje="Movimiento Browniano" plt.title(mensaje) ax.set_xlim3d(-500.0,500.0) ax.set_ylim3d(-500.0,500.0) ax.set_zlim3d(-500.0,500.0) plot=ax.scatter3D(x, y, z, c='r') return plotanim = animation.FuncAnimation(fig, frame, frames=100, blit=False)anim.save( 'MovimientoBrowniano.html', fps=5 )
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您的代码有两个主要问题。
x
,y
并z
试图在您的函数中进行本地更改。但是,您确实想更改在函数作用域之外定义的变量。您可以通过全局声明它们来轻松做到这一点:添加global x,y,z
您的函数。您正在尝试将动画保存到 html 文件。那不是有效的视频格式。我不知道您在这里针对的是哪种格式,但一个常见的选择是动画 gif,它可以由
anim.save('MovimientoBrowniano.gif', writer = "pillow", fps=5 )
添加回答
举报
0/150
提交
取消