使用键盘关闭matplotlib图形

时间:2019-02-11 16:50:03

标签: python matplotlib

我正在'for'循环内的同一图中绘制2个图形。问题是,为了保持循环运行,我必须使用鼠标手动关闭图形。这很困难,因为循环的长度超过300步。我正在寻找一种更简单的解决方案,例如单击数字1以关闭当前图形并下一步查看。我尝试使用以下代码,但无法正常工作。我相信仅在现有图形关闭后才能读取下一行。该如何解决?

P.S:另外,对按键使用raw_input()也不是一个好方法,因为我必须另外按下“ Enter”键。因此,建议一种替代方法,其中我可以通过连续按'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()


3 个答案:

答案 0 :(得分:1)

默认情况下,可以使用 q 键关闭matplotlib数字。相反,如果您想使用 1 键,则可以添加

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

脚本上方的某个地方。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这不是对您的问题的直接答复,但可能需要进行一些修改。在引用的代码中,我创建一个图形,而不是重新绘制窗口或关闭窗口,而是更新创建的线对象。

gif

代码位于: https://github.com/gustavovelascoh/plot_update