Python Matplotlib 动画帧重叠

2024-03-07

I am working on my orbit program, and I have currently only animated the moon with a downward (-y) velocity of -1023. The animation works, but each frame stays on the figure when the next one comes on: enter image description here

这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
import math
import matplotlib.animation as animation

er = 6378100*10#m             #earth radius
mr = 1737400*10#m             #moon radius
em = 5.97219*10**24#kg        #earth mass
mm = 7.34767309*10**22#kg     #moon mass
d = 384400000#m               #distance earth-moon
G = 6.67384*10**(-11)         #gravity constant
mv = -1023#m/s                #Moon velocity
nts = 10000                   #no. time steps


def circle(r, h, k, a):
    x = r*math.cos(a)+h
    y = r*math.sin(a)+k
    plt.scatter(x,y)

def simData():
    tmax = 10000*nts
    ts = 10000
    x = 0.0
    t = 0.0
    while t < tmax:
        n = 0
        for i in range(120):
            circle(mr, d, mv*t, n)
            n = n + math.pi/60
        t = t + ts
        yield x, t

def simPoints(simData):
    x, t = simData[0], simData[1]
    time_text.set_text(time_template%(t))
    line.set_data(t, x)
    return line, time_text



fig = plt.figure()
ax = plt.axes(xlim=(-430000000, 430000000), ylim=(-430000000, 430000000))

line, = ax.plot([], [], 'bo', ms=10)

time_template = 'Time = %.1f s'    # prints running simulation time
time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes)

ani = animation.FuncAnimation(fig, simPoints, simData, blit=False,\
     interval=10, repeat=True)
plt.show()

答案很简单:matplotlib动画不会擦除帧之间的图像。关键是您自己必须更改屏幕上对象的属性。现在,当您执行以下操作时,您可以使用一些新对象绘制新图像plt.scatter in circle.

我更改了代码中的几行以避免添加新对象,请参阅标记为的注释行####。现在应该快一点了。 (尽管月球正在逃离地球的引力场。遗憾。)

import numpy as np
import matplotlib.pyplot as plt
import math
import matplotlib.animation as animation

er = 6378100*10#m             #earth radius
mr = 1737400*10#m             #moon radius
em = 5.97219*10**24#kg        #earth mass
mm = 7.34767309*10**22#kg     #moon mass
d = 384400000#m               #distance earth-moon
G = 6.67384*10**(-11)         #gravity constant
mv = -1023#m/s                #Moon velocity
nts = 10000                   #no. time steps


def circle(r, h, k, a):
    x = r*math.cos(a)+h
    y = r*math.sin(a)+k
    #### CHANGED
    moony.center = x,y

def simData():
    tmax = 10000*nts
    ts = 10000
    x = 0.0
    t = 0.0
    while t < tmax:
        n = 0
        for i in range(120):
            circle(mr, d, mv*t, n)
            n = n + math.pi/60
        t = t + ts
        yield x, t

def simPoints(simData):
    x, t = simData[0], simData[1]
    time_text.set_text(time_template%(t))
    line.set_data(t, x)
    return line, time_text



fig = plt.figure()
ax = plt.axes(xlim=(-430000000, 430000000), ylim=(-430000000, 430000000))

#### CHANGED: a grey circle of moony dimensions to be moved around
moony = plt.Circle((0,0), mr, facecolor=(.8,.8,.8))
ax.add_artist(moony)

time_template = 'Time = %.1f s'    # prints running simulation time
time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes)

ani = animation.FuncAnimation(fig, simPoints, simData, blit=False,\
     interval=10, repeat=True)
plt.show()

当然,您可能还想创建一个圆圈来说明地球。您不需要有任何plt.plot如果您只想绘制两个对象,请在文件中添加命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Matplotlib 动画帧重叠 的相关文章

  • 在Python中,如何将矩阵逆时针旋转90度?

    gt gt gt def rotate matrix k List List int For example if I have m 1 2 3 2 3 3 5 4 3 rotate matrix m should give me 3 3
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • Matplotlib 图例,跨列添加项目而不是向下添加项目

    对于下面的简单绘图 有没有办法让 matplotlib 填充图例 以便它从左到右填充行 而不是第一列然后第二列 gt gt gt from pylab import gt gt gt x arange 2 pi 2 pi 0 1 gt gt
  • 用 Python 绘制直方图

    我有两个列表 x 和 y x 包含字母表 A Z Y 包含它们在文件中的频率 我尝试研究如何在直方图中绘制这些值 但在理解如何绘制它方面没有成功 n bins patches plt hist x 26 normed 1 facecolor
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • Python-验证我的文档 xls 中是否存在工作表

    我正在尝试在空闲时间设计一个小程序 加载 xls 文件 然后在要扫描的文档中选择一张纸 步骤1 用户导入 xls文件 导入程序后检查文件是否存在 我能做到的 第 2 步 我要求用户提供要分析的文档表 xls 的名称 这就是它停止的地方 该程
  • 为什么将模块级代码放入函数中然后调用该函数在Python中速度更快?

    在亚历克斯 马尔泰利的回应中使 Python 脚本面向对象 https stackoverflow com questions 1813117 making a python script object oriented 他提到在 Pyth
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • python中有没有一种方法可以将存储在列表中的正则表达式模式列表应用到单个字符串?

    我有一个正则表达式模式列表 存储在列表类型中 我想将其应用于字符串 有谁知道一个好方法 将列表中的每个正则表达式模式应用于字符串 和 如果匹配 则调用与列表中该模式关联的不同函数 如果可能的话我想用 python 来做这件事 提前致谢 im
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • 两种 ODE 求解器之间的差异

    我想知道 两者之间有什么区别ODEINT and solve ivp用于求解微分方程 它们之间有什么优点和缺点 f1 solve ivp f 0 1 y0 y0 is the initial point f2 odeint f y0 0 1
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import

随机推荐

  • Spring 集成 TCP。获取已连接客户端的连接ID

    我在这里遇到动态 TCP 连接方法的问题 Spring IP 动态 FTP 示例 https github com spring projects spring integration samples tree master advance
  • 从sql返回多个值到标签

    我有标签
  • IIS 8.5 中的 HttpModule 未加载

    我用 C 为 IIS 8 5 编写了一个简单的托管 HttpModule 并将其安装到全局程序集缓存中 CLR 版本 4 0 30319 IIS 检测到它存在 并且我已将其作为应用程序主机级别的模块安装 不幸的是 它似乎根本没有被执行 我们
  • 利用 Bootstrap Carousel“slide”事件和 .next 类

    所以我遇到了一个小问题 类似于我前几天发布的这个问题 http bit ly 11JpbdY http bit ly 11JpbdY 在加载时隐藏的一段内容上使用 SlabText 这次 我试图让slabText 更新滑块中某些内容的显示
  • 可以将活动的 Microsoft Word 窗口转换为 WPF 窗口吗?

    我创建了一个 Microsoft Word 2010 vsto 加载项 当用户单击功能区按钮时 它会显示许多自定义 Wpf 窗口对话框 我遇到的问题是 如果单击任务栏中的 Word 图标 自定义对话框会在 Word 实例后面消失 经过一番谷
  • R 中 model.matrix 中有序因子的列名称

    我使用创建了一个设计矩阵model matrix功能 如果我使用有序因子数据 我得到L Q and C列名称中的后缀 这些后缀的含义是什么以及它们如何映射到因子水平 帮助文件为model matrix对于这个问题还不清楚 head mode
  • 如何让 VS 2008 停止强制命名空间缩进?

    我从来都不太喜欢大多数编辑器处理名称空间的方式 他们总是强迫你添加额外的东西无意义压痕级别 例如 我在一个页面中有很多代码 我更喜欢将其格式化为 namespace mycode class myclass void function fo
  • golang:在 Windows 上运行 pdf 文件的默认应用程序

    我想使用默认应用程序在文件系统中打开 PDF 文件 我怎样才能做到这一点 在命令行中 我只需编写 pdf 文件的文件名 应用程序就会打开 包含请求的文件 当我尝试使用时exec Command 我收到一个错误 毫不奇怪 exec foo p
  • v-model 不支持输入类型=“文件”

    我不能使用v model对于文件输入 Vue 说我必须使用v on change 好的 我可以使用v on change 但是如何将输入文件的 内容 绑定到data财产 假设我想将它绑定到一个组件中this file export defa
  • 片段中的片段不刷新

    这是我的应用程序 带有片段 左侧有一个ListView 您可以在其中进行选择 如果您选择了右侧之一 则加载一个片段并将选项卡添加到 ActionBar 有这样的代码 import java util ArrayList import and
  • 实现多个用户角色

    我使用 state machine 取得了巨大的成功 并且喜欢它通过几行代码动态创建的类方法 但是 我不确定如何继续我正在创建的系统 我目前正在开发一个用户具有多种角色的系统 所以这并不像拥有一个状态来自的用户那么简单未证实 to 确认的然
  • php cURL 脚本在打印返回字符串时运行两次

    我有以下脚本 在远程 php 脚本中 一条记录被添加到数据库表中 当我在这个脚本中留下最后一行 print html 时 添加了 2 条记录 当我省略该行时 仅添加一条记录 但显然我没有任何输出 如果我将输出写入文件 则仅添加一条记录 输出
  • 无法加载类型“MediatR.ServiceFactory”

    我正在创建一个 Api 并且也在使用 mediatR 我已经创建了命令 查询 处理程序 但是当我尝试启动我的 Api 时 我在程序类中收到此错误消息 Could not load type MediatR ServiceFactory fr
  • Keras:一维输入的卷积层

    我无法为一维输入向量构建 CNN 输入值示例 df x iloc 300 Out 33 0 0 571429 1 1 000000 2 0 971429 3 0 800000 4 1 000000 5 0 142857 6 0 657143
  • 如何在 Cypress.io 中等待 WebSocket STOMP 消息

    在我的一项测试中 我想等待 WebSocket STOMP 消息 Cypress io 可以做到这一点吗 如果您要访问的 websocket 是由您的应用程序建立的 您可以遵循以下基本过程 获取参考WebSocket来自测试内部的实例 将事
  • jQuery插件回调函数参数

    我正在寻找一种更好的方法来访问 管理插件回调函数内的数据 我想做与 jQuery UI 相同的事情 用户界面示例 我想如何做到这一点 http api jqueryui com sortable http api jqueryui com
  • Perl 单行代码匹配所有出现的正则表达式

    对于类似这样的多行文本 views panes gw hero small site placement panel pane 1 1 a 0 a 10 s 14 override title i 1 s 19 override title
  • 使用“is”来命名布尔变量是不好的做法吗?

    现在命名以 is 开头的布尔值是不好的做法吗 我的经理认为 isAnything 已经过时且糟糕的做法 这是真的 myManager isLame correct incorrect 它在很多语言中都经常使用 但我不知道是否可以肯定地说它是
  • 团队中审批应用程序的 API - 是否有任何其他 API 可用于团队中新的审批应用程序?

    是否有任何 REST API 可用于团队中的新审批应用程序 在 Microsoft Teams 中发送 接收 管理和共享批准 您创建 管理和共享的所有系统的审批中心 能够在 Microsoft Teams 中直接查看并采取行动 快速完成工作
  • Python Matplotlib 动画帧重叠

    I am working on my orbit program and I have currently only animated the moon with a downward y velocity of 1023 The anim