2015-11-22 28 views
1

這是由另一個人在幾年前高度相關前面一個問題中力顯示:Matplotlib - Force plot display and then return to main codeMatplotlib腳本

我使用雨棚1.5.5 MacOSX上10.8.5,與matplotlib 1.4.3 。

我將需要加載數據,查看它,按回車批准並移至下一個數據集(並且執行數千次,因此獲得此功能至關重要)。這裏是我的MWE:

import numpy as np 
from matplotlib import pyplot as plt 
plt.ion() 
plt.figure() 
ind=np.arange(5) 
for i in ind: 
    plt.clf() 
    plt.scatter(ind,ind+i) 
    plt.title('this is plot number %i' % i) 
    plt.show() 
    u=raw_input("Press any button") 

該代碼似乎做的一切除了實際上給我看的情節。如果我完成腳本(或中斷它),那麼我看到當前的數字。

我嘗試了以前的所有答案:使用和不使用交互模式,使用和不使用plt.show(block = False),plt.draw和plt.show以及我可用列表中的每個後端的每個變體。

這似乎是一個非常基本的功能!請告訴我,這可以做到。我覺得很奇怪,matplolib在這裏說http://matplotlib.org/users/shell.html「默認情況下,繪圖延遲到腳本結束」,但沒有關於如何覆蓋默認值的建議。請幫忙!

回答

1

您的示例適用於我(我的後端是osx),但圖形窗口首先出現在其他窗口後面。我需要使用alt-tab將它提升到前面。

嘗試使用IPython的--matplotlib選項開始腳本。您可以選擇後端或讓它自動檢測,像這樣:ipython --matplotlib auto yourscript.py

不知道你現在,但raw_input功能等待您按回車鍵,不是任何鍵。

編輯:

關於你的最後一句話:this section介紹瞭如何在腳本結束前強行圖。這可以通過draw函數完成。在交互模式下,每個pyplot命令也會調用draw。在這種情況下繪製意味着通過後端渲染圖形。

+0

是的!從ipython工作。我會繼續搞亂Canopy提示(仍然不能在那裏工作),但是謝謝。 – AlinaZ

相關問題