python - python matplotlib:onclick不起作用,请告诉我为什么以及如何暂停和恢复动画,
问题描述
想在鼠标点击图形的时候暂停和恢复动画,但是不行,请帮我解决,谢谢,
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
x = np.arange(100)
y = np.arange(10, 110)
pause = False
def onClick(event):
global pause
pause ^= True
fig = plt.figure()
ax = fig.add_subplot()
line, = ax.plot([], [])
ax.set_ylim(0, 120)
ax.set_xlim(0, 100)
def runData(i):
line.set_data(x[:i], y[:i])
return line
fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, runData, frames=len(x), blit=False, interval=10, repeat=True)
plt.show()
解决方案
您需要pause
在runData()
. 就这个:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
x = np.arange(100)
y = np.arange(10, 110)
pause = False
def onClick(event):
global pause
pause ^= True
fig = plt.figure()
ax = fig.add_subplot()
line, = ax.plot([], [])
ax.set_ylim(0, 120)
ax.set_xlim(0, 100)
def runData(i):
if not pause:
line.set_data(x[:i], y[:i])
return line
fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, runData, frames=len(x), blit=False, interval=10, repeat=True)
fig.show()
推荐阅读
- sql - 将 UTC 时间转换为当地时间或欧盟日光比较
- kotlin - 从 kotlin 的集合中过滤掉非空值
- r - 如何在 map() 中使用 suppressMessages()
- scrollview - 如何修复 NativeScript Angular 中未定义的 @ViewChild ElementRef?
- python - 构建where子句的mongodb查询问题
- python - Flask Oauth2 google.authorize() 回调缺少 1 个位置参数
- javascript - 获取封闭 div 中子 div 的索引。未列出
- python - 用增量数填充数据列值,Python 3.6
- c# - 在 GetAsync 完成之前很久就结束请求的奇怪 HttpClient 日志记录
- php - 我想要两个相等部分的变量