我有以下极简的代码,工作非常好:一个连续的while循环不断地绘制我的数据,如果我按转义键,绘图就停止了。现在,如果关闭matplotlib窗口,则会出现一个新的plt.pause命令,但现在不再附加key_event。有没有办法保持新出现的窗口与key_event的连接?
代码:
import matplotlib.pyplot as plt
import numpy as np
keep_ploting = True
def action():
def key_event(event):
if event.key == 'escape':
global keep_ploting
keep_ploting = False
fig = plt.figure()
while keep_ploting:
plt.clf()
x = np.linspace(1, 10, 100)
y = np.random.weibull(2,100)
plt.plot(x, y)
plt.pause(1e-1)
fig.canvas.mpl_connect('key_press_event', key_event)
action()发布于 2021-05-27 14:50:22
当您关闭窗口时,它将创建新的figure,您应该使用gcf() (获取当前图)将event分配给新的figure。
while keep_ploting:
plt.clf()
x = np.linspace(1, 10, 100)
y = np.random.weibull(2,100)
plt.plot(x, y)
plt.pause(1e-1)
fig = plt.gcf() # get current figure
fig.canvas.mpl_connect('key_press_event', key_event)https://stackoverflow.com/questions/67723711
复制相似问题