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