有沒有辦法一次繪製一組圖形而不關閉前一個圖形,保持UI的控制,並在最後保持圖形打開?也許使用更合適的後端,或者使用OO風格而不是下面使用的pyplot/pylab風格來編寫它?一次繪製一個圖而不關閉舊圖(matplotlib)
例如我知道我可以做
plt.ioff()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
plt.show()
將等待我在每次迭代
關閉數字我還可以做
plt.ion()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
將盡可能快,因爲它可以生成它們繪製出來(例如10秒),但會阻擋我的整個用戶界面(例如,我甚至無法移動窗口),不會顯示軸(我只能看到數字窗口),並且會自動關閉所有數字的循環。
,我不是在尋找第三個選項是該
plt.ioff()
for i in range(10)
plt.figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plt.plot(arr)
plt.show()
其中涉及我的屏幕上看到任何東西之前等待100秒。
我在尋找類似Matlab的行爲,我可以做
for i = 1:10
figure()
arr = thisFunctionTakesTenSecondsToGenerateMyArray()
plot(arr)
drawnow
這將得出一個數字,每10秒,也讓我走動例如窗戶如果圖3位於頂部,我想回到圖1,同時生成圖4。
編輯: 使用Python 2.7.13,Matplotlib 2.0.0。在Windows 7 SP1上使用Spyder 3.1.3運行它 - 我嘗試在內置的IPython控制檯,香草Python控制檯以及腳本中運行它,所有結果都相同。
理想情況下,我希望能夠通過腳本和交互方式(即通過執行腳本或通過複製並粘貼到控制檯)來運行它。
你使用的是什麼版本的Python? – Astrom
是否要從交互式Python會話或命令行運行代碼? –
@Astrom Python 2.7.13,Matplotlib 2.0.0(更新了原來的問題) – dkv