按一个键中断Matplotlib中的绘图循环

2024-04-23 13:46:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在一个接一个地绘制一些图形(关闭窗口,以查看下一个),但我需要一种方法来中断循环并通过按一个键(例如Esc)完成脚本。在

我试着用mscrt.getch公司(),但不起作用,如有任何建议,将不胜感激。在

核心周期是这样的:

for i, _ in enumerate(ID_SECTION):
    FIG = plt.figure(
            num=ID_SECTION[i],
            figsize=(10, 7.5),
            facecolor='w'
        )
    curve = FIG.add_subplot(
            1, 2, 1,
            adjustable='box',
            aspect='equal'
        )
    curve.scatter(x, y)
    plt.show()
    plt.close('all')

Tags: 方法脚本id图形核心fig绘制公司
1条回答
网友
1楼 · 发布于 2024-04-23 13:46:46

如果您不介意按“回车”每个循环来告诉循环继续,您可以在循环的末尾添加如下内容:

r = input("Continue [y]/n?")
if r == 'n':
    break

否则,我想你得在你的数字上加一个keypress callback。从这个例子来看,类似这样的方法可能有用:

^{pr2}$

然后将此添加到循环中:

FIG.canvas.mpl_connect('key_press_event', press)
if not run:
    break

不过,我不确定向创建数字的循环添加回调是否是个好主意。最好是创建一个图并添加回调函数,然后添加一个暂停或其他内容,这样您就可以看到该图创建了每个循环。但是,如果您要这样做,那么第一个input解决方案可能会更好。在

还要注意,我在后一个解决方案中使用了global,它是generally frowned upon。在

相关问题 更多 >