首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在重新创建循环中关闭窗口后的Matplotlib图key_event连接

在重新创建循环中关闭窗口后的Matplotlib图key_event连接
EN

Stack Overflow用户
提问于 2021-05-27 13:58:36
回答 1查看 135关注 0票数 0

我有以下极简的代码,工作非常好:一个连续的while循环不断地绘制我的数据,如果我按转义键,绘图就停止了。现在,如果关闭matplotlib窗口,则会出现一个新的plt.pause命令,但现在不再附加key_event。有没有办法保持新出现的窗口与key_event的连接?

代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-27 14:50:22

当您关闭窗口时,它将创建新的figure,您应该使用gcf() (获取当前图)将event分配给新的figure

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67723711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档