python - 在 matplotlib 中将一个动画叠加到另一个动画上
问题描述
所以我想制作两个动画并将它们放在一起。我想这样做是因为我希望两者都有不同的帧速率。如果我在 matplotlib 中使用 funcAnimation 怎么办?谢谢!
解决方案
您可以在变化最快的动画的更新函数中添加一个测试,并且只有在帧数是时间步长之间比率的倍数的情况下,才更新第二个动画。
下面的例子有一个移动的正弦波。每 10步更新一个缩放的余弦函数。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
x = np.linspace(0, 6 * np.pi, 200)
line1, = ax.plot(x, np.sin(x))
line2, = ax.plot(x, np.cos(x) / 100)
def animate(i):
line1.set_ydata(np.sin(x + i / 10.0)) # update the first part
if i % 10 == 0:
j = i / 10
line2.set_ydata(np.cos(x) * j / 20) # update the second part, only every 5 steps
return line1, line2,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), interval=25)
plt.show()
推荐阅读
- reactjs - 如何允许用户保存输入以供进一步审查
- typescript - 使用 TypeORM 和带有文件夹路径的 Typescript 时出错
- c++ - 如何从指针的指针向量中获取指针值?
- tensorflow - 如何为时间序列异常检测提供这个 LSTM-AE?
- javascript - PostMan 将 JSON post 请求中的空正文发送到 Express 服务器
- python - 如何保护我的 ren'py 项目不被复制?
- clickhouse - clickhouse 是否提供任何工具,例如 red gate sql toolbelt
- linux - 在 apache 配置中未显示预期输出
- node.js - 为什么我不能将 @bundled-es-modules/chai 别名为 chai?
- python - 在 Matplotlib 中同时使用 blitting 为一个子图设置动画,而在 Matplotlib 中通过重绘为另一个子图设置动画