我正在'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()
答案 0 :(得分:1)
默认情况下,可以使用 q 键关闭matplotlib数字。相反,如果您想使用 1 键,则可以添加
plt.rcParams["keymap.quit"] = "1"
脚本上方的某个地方。
答案 1 :(得分:0)
raw_input()
函数返回一个字符串,因此您需要将comnd
强制转换为整数,或者将if
语句中的“ 1”替换为'1'
。
答案 2 :(得分:0)
这不是对您的问题的直接答复,但可能需要进行一些修改。在引用的代码中,我创建一个图形,而不是重新绘制窗口或关闭窗口,而是更新创建的线对象。