gpt4 book ai didi

python - python matplotlib动画中的停止/开始/暂停

转载 作者:IT老高 更新时间:2023-10-28 20:36:45 38 4
gpt4 key购买 nike

我在 matplotlib 的动画模块中使用 FuncAnimation 来制作一些基本动画。这个函数永远循环播放动画。有没有一种方法可以让我通过鼠标点击来暂停和重新启动动画?

最佳答案

这里是 a FuncAnimation example我修改为在鼠标点击时暂停。由于动画是由生成器函数 simData 驱动的,当全局变量 pause 为 True 时,产生相同的数据会使动画显示为暂停。

paused 的值是通过设置事件回调来切换的:

def onClick(event):
global pause
pause ^= True
fig.canvas.mpl_connect('button_press_event', onClick)

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

pause = False
def simData():
t_max = 10.0
dt = 0.05
x = 0.0
t = 0.0
while t < t_max:
if not pause:
x = np.sin(np.pi*t)
t = t + dt
yield x, t

def onClick(event):
global pause
pause ^= True

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 = fig.add_subplot(111)
line, = ax.plot([], [], 'bo', ms=10)
ax.set_ylim(-1, 1)
ax.set_xlim(0, 10)

time_template = 'Time = %.1f s'
time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes)
fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, simPoints, simData, blit=False, interval=10,
repeat=True)
fig.show()

关于python - python matplotlib动画中的停止/开始/暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732379/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com