Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用键盘关闭matplotlib图形_Python_Matplotlib - Fatal编程技术网

Python 使用键盘关闭matplotlib图形

Python 使用键盘关闭matplotlib图形,python,matplotlib,Python,Matplotlib,我在一个“for”循环中,在同一个图形中绘制了两个图形。问题是,为了保持循环运行,我必须使用鼠标手动关闭图形。这是困难的,因为环路超过300步长。我正在寻找一个更简单的解决方案,比如单击数字1关闭当前图形并查看下一个。我尝试了以下代码,但它不起作用。我相信只有在现有图形关闭后,才能读取下一行。如何解决这个问题 另外,在按键时使用raw\u input()不是一个好方法,因为我必须另外按下“回车”键。因此,建议另一种方法,我可以通过连续按“1”来关闭图形 for roww in range (0,

我在一个“for”循环中,在同一个图形中绘制了两个图形。问题是,为了保持循环运行,我必须使用鼠标手动关闭图形。这是困难的,因为环路超过300步长。我正在寻找一个更简单的解决方案,比如单击数字1关闭当前图形并查看下一个。我尝试了以下代码,但它不起作用。我相信只有在现有图形关闭后,才能读取下一行。如何解决这个问题

另外,在按键时使用
raw\u input()
不是一个好方法,因为我必须另外按下“回车”键。因此,建议另一种方法,我可以通过连续按“1”来关闭图形

for roww in range (0,height) :
        com = 0
        isignal = matrix[roww]
        fft_ith = np.fft.fft(isignal)
        fft_abs_ith = np.abs(fft_ith)
        c_fft = fft_abs_ith[:len(fft_abs_ith)//2] 
        c_fft[zi] = 0


        plt.subplot(2,1,1)
        plt.plot(time,isignal,marker='.')
        plt.xlim(0,time[len(time)-1])
        plt.title("Individual oscilations  and FFT of each cell \n cell ="+str(roww))
        plt.subplot(2,1,2)
        plt.plot(c_freqq,c_fft,marker = ".")
        plt.show()
comnd = raw_input()
if comnd == 1
        plt.close()



raw\u input()
函数返回一个字符串,因此您需要将
comnd
转换为整数,或者将
if
语句中的“1”替换为
'1'

默认情况下,可以使用q键关闭matplotlib图形。如果您想使用1键,可以添加

plt.rcParams["keymap.quit"] = "1"

在脚本顶部的某个地方。

这不是对您的问题的直接回答,但经过一些修改可能会很有用。在参考的代码中,我创建了一个图形,并更新了创建的线条对象,而不是重新填充或关闭窗口

代码位于:

为什么不在完成循环后进行绘图?我想分别查看每个图形@Jackmoody你试过CTRL+W吗?@Gustavovelasch谢谢,我刚试过,它关闭了图表。看来我得用它了!我想知道还有什么办法可以结束吗?不必按两个键?请注意,一旦图形打开,您的注意力将集中在图形窗口上,而不是控制台或python程序上。CTRL+W组合用于关闭地物窗口。还有另一个选项,更新图形(线)的内容,不关闭和重画,这对您的案例有效吗?可能就像在不关闭图形窗口的情况下按一个键绘制下一个光谱。很抱歉,这仍然不起作用,我用字符串“1”替换了if条件,现在我必须首先使用鼠标手动关闭图形,然后按“1”,然后按“回车”" !
q
键未关闭绘图。我还试着在代码中添加上面这一行,它也不起作用。此外,早期的
ctrl+w
用于关闭绘图,但添加此行后,它也停止工作。您可以将其设置为
plt.rcParams[“keymap.quit”]=['ctrl+w'、'cmd+w'、'q']
或任何您喜欢的设置。