为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用 matplotlib 为布朗运动设置动画时出现问题

尝试使用 matplotlib 为布朗运动设置动画时出现问题

POPMUISE 2021-08-14 17:16:03
我真的是 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个赞

您的代码有两个主要问题。

  1. x,yz试图在您的函数中进行本地更改。但是,您确实想更改在函数作用域之外定义的变量。您可以通过全局声明它们来轻松做到这一点:添加global x,y,z您的函数。

  2. 您正在尝试将动画保存到 html 文件。那不是有效的视频格式。我不知道您在这里针对的是哪种格式,但一个常见的选择是动画 gif,它可以由

    anim.save('MovimientoBrowniano.gif', writer = "pillow", fps=5 )


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信