[英]How do I get interactive plots again in Spyder/IPython/matplotlib?
我在 Windows 7 中從 Python(x,y) 2.7.2.3 升級到2.7.6.0 (很高興看到我終於可以輸入function_name?
並再次在對象檢查器中查看文檔字符串)但現在繪圖不起作用像以前一樣。
以前(Spyder 2.1.9、IPython 0.10.2、matplotlib 1.2.1),例如,當我繪制此腳本時,它會在交互式窗口中並排繪制子圖:
現在(Spyder 2.2.5,IPython 1.2.0,Matplotlib 1.3.1)當我嘗試繪制事物時,它將子圖作為微小的內聯 PNG 執行,這是IPython 的一個變化:
所以我進入了選項並發現了這個:
這似乎是說我可以恢復舊的交互式繪圖,並排顯示 4 個子繪圖,但是當我切換到“自動”並嘗試繪制某些內容時,它什么也沒做。 根本沒有情節。
如果我將此下拉菜單切換到 Qt,或取消選中“激活支持”,它只會繪制第一個子圖或其中的一部分,然后停止:
如何在我可以交互的單個圖形中獲得 4 個並排子圖的舊行為?
將后端更改為自動:
工具 > 首選項 > IPython 控制台 > 圖形 > 圖形后端 > 后端:自動
然后關閉並打開 Spyder。
您可以通過在 Spyder 的 IPython 控制台中輸入內置魔法命令來快速控制它,我發現這比從首選項菜單中選擇這些命令更快。 更改立即生效,無需重新啟動 Spyder 或內核。
要切換到“自動”(即交互式)繪圖,請鍵入:
%matplotlib auto
然后,如果您想切換回“內聯”,請鍵入:
%matplotlib inline
(注意:這些命令在非 IPython 控制台中不起作用)
查看有關此主題的更多背景信息: “%matplotlib inline”的目的
正如評論中所說,問題在於您的腳本。 其實有2個問題:
None
傳遞。 也許是由於 defaultdict ?show()
。 show()
應該在腳本結束時調用一次。 另一種方法是使用交互模式,在 matplotlib 的文檔中查找ion
。這實際上很容易修復並且不需要任何編碼:
1. 單擊控制台上方的 Plots 選項卡。 2.然后在繪圖屏幕的右上角單擊選項按鈕。 3.最后取消選中“靜音內聯繪圖”按鈕
現在重新運行您的腳本,您的圖形應該會顯示在控制台中。
干杯。
對於大多數數學編碼,我使用這個網站和他們的服務,因為他們為每個主題提供示例,他們的支持非常有幫助:
https://labdeck.com/application-examples-screenshots/
如果您希望圖形以可變數量變化,那么您要使用的代碼是
import matplotlib.pyplot as plt
import time
vec1=[1, 2, 3, 4, 5]
vec2py=[10, 12, 9, 11, 13]
plt.show()
axes = plt.gca()
axes.set_xlim(0, 6)
axes.set_ylim(5, 50)
plt.xlabel('x - axis')
plt.ylabel('y - axis')
plt.title('Example 1')
plt.grid()
line,= axes.plot(vec1,vec2py,color='red',lw=1)
for x in range(0,10):
vec2py = [x + 2 for x in vec2py]
line.set_ydata(vec2py)
plt.draw()
plt.pause(1e-17)
time.sleep(0.5)
plt.show()
您必須更改 x 以表示您想要的圖形迭代次數以及您希望它運行多長時間,以及 vec2py 行中的 +2 以表示您想要更改它的變量數量。 當然,代碼是一個模板,您可以進行任何美學上的更改。 該代碼文件位於上面鏈接中python編程下的顯示動態圖下。
如果你想顯示來自源的信息的持續依賴,我不確定如何做到這一點,但之前提到的網站確實有一個例子,但它不是在 python 中,而是在 C++ 的簡化形式中。如果您確實想看到它,那么鏈接是https://labdeck.com/examples/dsp-ecg-processing/ecg-9-leads-graphs.pdf?01a96f&01a96f及其下 ECG 9 Leads graphs in ECG on the link at開始。 圖形可以在文檔中顯示,也可以獨立於文檔顯示。
PS 這適用於有相同問題但不一定是相同場景的人,因為我認為這會更有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.