2016-10-12 74 views
0

考慮一個循環按照下面的代碼內的刷新圖:調試使用在縮放選項期間waitforbuttonpress()matplotlib可能的錯誤

import matplotlib.pyplot as plt 

def fun_example(): 

    plt.ion() 
    for ite in range(3): 
     x = np.linspace(-2,6,100) 
     y = (ite+1)*x 

     figura = plt.figure(1) 
     plt.plot(x,y,'-b') 
     plt.waitforbuttonpress() 
     plt.close() 
    #endfor ite 

#enddef fun_example 

if __name__ == '__main__': 
    fun_example() 
#endif main 

的想法是檢查用鼠標數字(例如,圖中的工具欄),一旦完成,按下按鈕繼續執行代碼。至少在我的情況下(Windows 7,python 3.4.4,spyder 3.0.0dev),如果我打算在圖形中單擊鼠標進行縮放,效果與按下按鈕相同。換句話說waitforbuttonpress()返回確實,並且該圖不見了。

有什麼建議嗎?它可能是一個錯誤?感謝你們所有人提前。

回答

2

the documentation.waitforbuttonpress()將返回True如果按一個鍵,False如果按下鼠標按鍵。因此,你想要的可能是這樣的:

while True: 
    if plt.waitforbuttonpress(): 
     break 
+0

謝謝你的答案。我看到了文檔,不幸的是,如果鼠標點擊圖形曲線,函數* waitforbuttonpress()*將返回* True *。 –

+0

我試圖刪除我自己的評論,但我不知道該怎麼做。對不起,你是對的。謝謝您的幫助。我認爲它拋出*真*只要等待結束,儘管返回*假* –