当前位置: 首页 > 面试题库 >

Matplotlib FuncAnimation仅绘制一帧

章晋鹏
2023-03-14
问题内容

我正在尝试使用该FuncAnimation模块制作动画,但是我的代码仅产生一帧,然后停止。似乎没有意识到需要更新什么。您能帮我解决问题吗?

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

x = np.linspace(0,2*np.pi,100)

def animate(i):
    PLOT.set_data(x[i], np.sin(x[i]))
    print("test")
    return PLOT,

fig = plt.figure()  
sub = fig.add_subplot(111, xlim=(x[0], x[-1]), ylim=(-1, 1))
PLOT, = sub.plot([],[])

animation.FuncAnimation(fig, animate, frames=len(x), interval=10, blit=True)
plt.show()

问题答案:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

x = np.linspace(0,2*np.pi,100)

fig = plt.figure()  
sub = fig.add_subplot(111, xlim=(x[0], x[-1]), ylim=(-1, 1))
PLOT, = sub.plot([],[])

def animate(i):
    PLOT.set_data(x[:i], np.sin(x[:i]))
    # print("test")
    return PLOT,

ani = animation.FuncAnimation(fig, animate, frames=len(x), interval=10, blit=True)
plt.show()

您需要保留对动画对象的引用,否则它会被垃圾收集并且计时器消失。

将硬引用动画附加到基础对象存在一个未解决的问题Figure

由于写的,你的代码以及只绘制一个点,这将是不可见的,我改变了它有点吸取 多达 当前索引



 类似资料:
  • 问题内容: 使用python的matplotlib绘制3d图形时出现问题。使用以下python函数,我得到了这个图: 在这里,有孔栅格和和的功能和。代表表面颜色。 但是现在我想水平切割该图,仅保留z在-1和2之间的部分。 我想要的,用gnu​​plot绘制的是这样的: 我尝试了和,但是它们都没有给我想要的数字。有人知道如何使用python吗? 问题答案: 你在那里有漂亮的圆锥形交叉点:) 您要尝试

  • 问题内容: 这是我的问题…: 在我的活动中,我有一个和一个。我希望Button仅在显示某个可绘制对象时才执行操作。是的,这意味着该代码正在各种可绘制对象之间进行动画处理,从而使其不会中断我想要完成的工作。 没用 并且我将其范围缩小到“ if(vari(drawabledrawable == acertaindrawable)”行的错误。尽管Eclipse并没有公然报告两个可绘制对象是否相同的And

  • 通过WebGL可以渲染出来各种各样酷炫的3D效果,但是考虑到WebGL复杂性,为了大家降低初学难度,下面的代码仅仅在Canvas画布上绘制了一个点,对WebGL的整个绘图渲染流程进行了完整的演示,麻雀虽小,五脏俱全。 学习建议 本节课你不需要刻意去记忆具体知识,对于暂时不理解的小细节可以跳过,先有个整体印象即可,可以把全部代码复制到编辑器中,根据课程对相关知识模块的介绍,尝试更改几个参数,体验一下

  • 许多插件,比如buttons,自己就做了它们所有的绘制工作。比如你仅仅需要告诉它们你想看到的标签、你想它们使用的字体、绘制按钮的轮廓和焦点矩形。有时候,有必要做些自定义的绘制。在这种情况下,一个 GtkDrawingArea控件可能是正确的选择,这个控件提供了一个画布,在这个画布上你可以绘制并且将其连接到”draw“信号。 控件的内容常常需要被部分或者全部重新绘制。比如,当另一个窗口控件被移动并且

  • 我正在考虑将我们内部的汽车/测量应用程序从Swing移植到JavaFX,主要是因为它有更好的外观和多点触控支持,但是我找不到一种方法来渲染只有当它们可见时才可以呈现的自定义组件。 为了获得动力,想象一个有10个选项卡的屏幕,每个选项卡内都有一个显示正在测量的一些实时数据的图。任何时候,只能看到一个情节。数据量很大,计算机有足够的能力一次渲染一个情节,但不能同时渲染所有情节。 摇摆版 现在在Swin

  • 我正在编写一个Java程序来显示我的入门编程类的Mandelbrot集。我相信我已经正确地设置了所有的数学,但是当我尝试绘制分形时,我得到的只是一种纯色。我已经测试了数学,它似乎应该是有效的。我搜索了一个多小时,但没有找到任何有用的东西。下面是我的复数类,并实际创建了Mandelbrot集:复数 曼德布罗特 我已经做了一些JUnit测试,上面的两个类似乎都可以工作。我的测试中可能有一个缺陷导致了疏