簡體   English   中英

使用Visual Studio的Python工具在Visual Studio中使用Matplotlib進行繪圖

[英]Plotting with Matplotlib in Visual Studio using Python Tools for Visual Studio

我是新手,為我的Python代碼使用PTVS。 我之前使用過Spyder和Anaconda發行版一起使用。 這是我遇到的問題。

我正在嘗試創建兩個圖,並在同一時間在單獨的窗口中顯示它們。 一個簡單的例子是。

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4,5]) 
plt.show() 
plt.plot([2,2,2,2,2]) 
plt.show()

但除非我關閉第一個情節,否則第二個情節不會出現。 類似地,對於更大的腳本,如果我不關閉繪圖,則plt.show()之后的其余代碼塊不會執行。 我嘗試執行沒有調試,它不起作用。 但是,當我在Ipython交互式窗口中運行相同的代碼時,所有代碼都會執行,我可以看到這兩個圖都是內聯的,但它不是我想要的。 我想要運行所有代碼,在不同的窗口中根據需要創建盡可能多的繪圖而不會中斷,例如關閉其余代碼運行的繪圖。 我仍然可以在Spyder中做到這一點,但我想完全切換到Visual Studio,這個問題讓我煩惱。

任何幫助,將不勝感激。 提前致謝。

現在我不知道這在VS中是如何工作的,但每當我必須在交互式窗口中制作多個圖(不保存它們)並且我想將它們全部顯示在一起時這就是我所做的:

fig, ax = plt.subplots()
ax.plot([1,2,3,4,5])
fig1, ax1 = plt.subplots()
ax1.plot([1,2,3,4,5])
plt.show()

請注意,在plt.show()之后你將被卡住(仍然plt.show() 要擁有一個不會妨礙其余代碼的交互式窗口,您必須使用IPython或其他一些能夠實現異步繪圖和計算的工具。 但是直接從Python解釋器,你將不得不等到你終止該行。

此外,您還可以通過做打開交互模式plt.ion() 天下之憂。 這樣可以直接查看您的繪圖,在您發出與其相關的命令后,該繪圖會更新。

我相信這是你正在尋找的實際命令。 這是手冊

我沒有在Visual Studio中完成此操作,但使用Matplotlib,您可以使用非阻塞調用來show draw方法不會阻止,但如果您不通過show結束調用,則圖形窗口將立即關閉。

import matplotlib.pyplot as plt
plt.figure(1)
plt.plot([1,2,3,4,5]) 
plt.show(block=False)

# Create a new figure to show the extra information.
# http://matplotlib.org/users/pyplot_tutorial.html#working-with-multiple-figures-and-axes
plt.figure(2)
plt.plot([2,2,2,2,2]) 
plt.show()

這是關於同一主題的相關問題

我個人使用matplotlib示例中顯示的subplots圖。

您是否嘗試在自己的腳本或Python Interactive窗口中完成此工作?

如果是后者,則應在工具 - >選項 - > Python工具 - >交互式Windows - >交互模式(默認為“標准”;將其更改為“IPython”)中啟用它的IPython模式,並確保如果安裝了多個,則在“顯示設置”組合框中選擇了正確的Python。 那么你根本就不需要plt.show ,因為plt.plot會立即在Interactive窗口內直接顯示內聯圖。

我可以建議你一個我出於類似原因工作的開源工具。 我希望在調試時一個接一個地查看繪圖,而不處理關閉窗口或特定環境......

這個答案並沒有直接幫助您使用Matplotlib,而是建議一種解決相同問題的替代方法。 我在Matplotlib或IPython以及類似工具中發現的問題是它們通常非常局限於某些環境(例如在您的情況下,IDE)。 這些工具通常難以控制到您自己的顯示要求(或需要很長時間)。

HypnoLog可以幫助您繪制Python或任何其他語言的任何數據。 它將在Web瀏覽器中一個接一個地顯示相同的頁面(如日志)。 由於HypnoLog使用瀏覽器顯示圖表,您可以輕松使用Web上的任何其他工具來顯示圖表或創建自己的圖表。

特別是對於Python,已經有一個語言包裝器,請參閱HypnoLog-Python 要繪制數值數組,您可以使用內置的可視化plot

這在Python中看起來如何:

import hypnolog as HL
HL.log([1,2,3,4,5], 'plot');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM