Matplotlib动画;在推送模式下进行动画处理,而不具有回调功能

Spinkus

我想创建一个matplotlib动画,但不是让matplotlib打电话给我,而是想给matplotlib打电话。例如,我想这样做:

from random import random
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

def update(frame):
    plt.scatter(random(),random())

fig, ax = plt.subplots()
ani = FuncAnimation(fig, update, interval=340, repeat=True)
ani.save("my.mov", "avconv")

像这样:

def update():
    plt.scatter(random(),random())

fig, ax = plt.subplots()
ani = MadeUpSubClassPassiveAnimation(fig)

while True:
  update()
  ani.update()
  # do other stuff ...

ani.save("my.mov", "avconv") 

我意识到我可以像这样驾驶现场剧情:

def update():
  plt.scatter(x, y)
  plt.pause(0.01)

fig, ax = plt.subplots()
plt.ion()

while True:
  update()
  time.sleep(1)

但是我需要使用AFAIKAnimationsave()功能。那么,有可能开车Animation而不是让我开车吗?如果可以,怎么办?

认真的重要性

一个Animation被保存时运行。这意味着动画在两次运行时需要可再现地提供相同的结果(一次用于保存,一次用于显示)。换句话说,需要根据连续的帧定义动画。根据这一要求,可以使用函数(FuncAnimation)或帧列表)上的回调来构造任何动画ArtistAnimation

问题中的示例可以使用来完成ArtistAnimation(以免已保存的动画和显示的动画分别具有不同的随机数):

import matplotlib.pyplot as plt
import matplotlib.animation
from random import random

def update(frame):
    sc = ax.scatter(random(),random())
    return [sc]

fig, ax = plt.subplots()

artists = []

for i in range(10):
    sc = update(i)
    artists.append(sc)

# If you want previous plots to be present in all frames, add
#artists = [[j[0] for j in artists[:i+1]] for i in range(len(artists))]

ani = matplotlib.animation.ArtistAnimation(fig,artists,interval=100)
ani.save(__file__+".gif", writer="imagemagick") 
plt.show()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Maltpoltlib对具有轮廓的pcolormesh进行动画处理

以特定模式对矩形进行动画处理

Libgdx动画,仅在Animation.LOOP_RANDOM模式下进行动画处理

使用不带动画功能的matplotlib进行动画

在Unity中在没有动画师的情况下对多个精灵进行动画处理

使用matplotlib.animation.FuncAnimate对具有周期性边界的多车道高速公路进行动画处理

使用matplotlib使用colorbar对散点图进行动画处理

在matplotlib中对散点和线进行动画处理

仅对按下的按钮进行动画处理

WP8.1应用程序后台任务不具有推送通知功能。

检查div是否具有课程,然后进行动画处理

CSS仅对具有边框半径和透明背景的Draw Circle进行动画处理

对具有不同关键帧值的新创建对象进行动画处理

Xamarin.Forms-同时对2件事进行动画处理(推送动画)

WPF动画回调功能

在不对其他属性进行动画处理的情况下对一个属性进行动画处理

如何创建具有多个动画功能的matplotlib动画

对没有CAKeyframeAnimation的路径旁的视图进行动画处理

使用Java对现有模型进行动画处理?

尝试对SVG笔画进行动画处理,但没有运气

发布/订阅推送消息不具有messageId属性

Oracle SQL:按相同字段对行进行分组,但不具有汇总功能

当在本机动画中按下时进行动画处理

引导轮播动画从上到下而不是从左到右进行动画处理

jQuery对所有元素进行动画处理,而不是仅对下一个进行动画处理

RecyclerView一次对所有项目进行动画处理,而不是一一进行动画处理

SQLite:WAL模式不具有持久性

从左到右对div进行动画处理

仅对按钮的颜色进行动画处理