[英]In my Pycharm why the df.plot() do not show up in PyCharm?
[英]Pycharm does not show plot
Pycharm 不顯示以下代碼的繪圖:
import pandas as pd
import numpy as np
import matplotlib as plt
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
發生的情況是一個窗口出現不到一秒鍾,然后又消失了。
在相同的代碼上使用 Pyzo IEP IDE(使用相同的解釋器),該圖按預期顯示。
...所以問題一定出在 Pycharm 上的一些設置上。 我試過同時使用 python.exe 和 pythonw.exe 作為解釋器,結果相同。
這是我的 sys_info:
C:\pyzo2014a\pythonw.exe -u C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevconsole.py 57315 57316
PyDev console: using IPython 2.1.0import sys; print('Python %s on %s' % (sys.version, sys.platform))
Python 3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, 13:02:30) [MSC v.1600 64 bit (AMD64)] on win32
sys.path.extend(['C:\\Users\\Rasmus\\PycharmProjects\\untitled2'])
In[3]: import IPython
print(IPython.sys_info())
{'commit_hash': '681fd77',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': 'C:\\pyzo2014a\\lib\\site-packages\\IPython',
'ipython_version': '2.1.0',
'os_name': 'nt',
'platform': 'Windows-8-6.2.9200',
'sys_executable': 'C:\\pyzo2014a\\pythonw.exe',
'sys_platform': 'win32',
'sys_version': '3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, '
'13:02:30) [MSC v.1600 64 bit (AMD64)]'}
只需使用
import matplotlib.pyplot as plt
plt.show()
該命令告訴系統在 Pycharm 中繪制繪圖。
例子:
plt.imshow(img.reshape((28, 28)))
plt.show()
我意識到這是舊的,但我想我會澄清其他旅行者的誤解。 將plt.pyplot.isinteractive()
設置為False
意味着將根據要繪制的特定命令(即plt.pyplot.show()
)繪制繪圖。 將plt.pyplot.isinteractive()
設置為True
意味着每個pyplot
( plt
) 命令都會觸發繪圖命令 (即plt.pyplot.show()
)。 因此,您很可能在程序末尾尋找plt.pyplot.show()
以顯示圖形。
作為旁注,您可以通過使用以下導入命令import matplotlib.pyplot as plt
而不是matplotlib as plt
來稍微縮短這些語句。
我有同樣的問題。 檢查plt.isinteractive()
是否為 True。 將其設置為“假”對我有幫助。
plt.interactive(False)
我嘗試了不同的解決方案,但最終對我plt.show(block=True)
是plt.show(block=True)
。 您需要在myDataFrame.plot()
命令之后添加此命令才能使其生效。 如果您有多個繪圖,只需在代碼末尾添加命令。 它將允許您查看正在繪制的每個數據。
import matplotlib
matplotlib.use('TkAgg')
為我工作。 (PyCharm/OSX)
我在我的 Pycharm 版本(社區版 2017.2.2)中測試,你可能需要聲明 plt.interactive(False) 和 plt.show(block=True) 如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 6.28, 100)
plt.plot(x, x**0.5, label='square root')
plt.plot(x, np.sin(x), label='sinc')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("test plot")
plt.legend()
plt.show(block=True)
plt.interactive(False)
我找到了解決辦法。 這對我有用:
import numpy as np
import matplotlib.pyplot as plt
points = np.arange(-5, 5, 0.01)
dx, dy = np.meshgrid(points, points)
z = (np.sin(dx)+np.sin(dy))
plt.imshow(z)
plt.colorbar()
plt.title('plot for sin(x)+sin(y)')
plt.show()
打電話后不久
plt.imshow()
稱呼
plt.show(block = True)
您將獲得帶有圖像的 matplotlib 彈出窗口。
這是一種阻塞方式。 在彈出窗口關閉之前,不會運行進一步的腳本。
對我來說,問題是 matplotlib 使用了錯誤的后端。 我正在使用 Debian Jessie。
在控制台中,我執行了以下操作:
import matplotlib
matplotlib.get_backend()
結果是:'agg',而這應該是'TkAgg'。
解決方法很簡單:
只需添加plt.pyplot.show()
,就可以了。
最好的解決方案是禁用 SciView。
以上都不對我有用,但以下方法對我有用:
禁用 pycharm settings > Tools > Python Scientific
的復選框(Show plots in tool window)。
我收到錯誤No PyQt5 module found
。 繼續使用以下方法安裝PyQt5
:
sudo apt-get install python3-pyqt5
請注意,對於某些人來說,僅第一步就足夠了並且有效。
我在 PyCharm 2017.1.2 上的版本中進行了測試。 我使用了交互式 (True) 和顯示 (block=True)。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1//2000',periods=1000))
ts = ts.cumsum()
plt.interactive(True)
ts.plot()
plt.show(block=True)
對於初學者,您可能還想確保在控制台中運行腳本,而不是常規 Python 代碼。 突出顯示一段代碼並運行它是相當容易的。
我的環境:macOS 和 anaconda3
這對我有用:
matplotlib.use('macosx')
或交互模式:
matplotlib.use('TkAgg')
我有這個問題,我可以解決它,你可以測試我的方式..從設置-->工具-->python科學禁用“在工具窗口中顯示圖”
我能夠在這里結合一些其他建議對我plt.interactive(False)
,但只有在將plt.interactive(False)
切換為True
並再次返回時。
plt.interactive(True)
plt.pyplot.show()
這將閃現我的情節。 然后設置為False
允許查看。
plt.interactive(False)
plt.pyplot.show()
如前所述,我的程序在所有窗口都關閉之前不會退出。 以下是我當前運行環境的一些詳細信息:
Python version 2.7.6
Anaconda 1.9.2 (x86_64)
(default, Jan 10 2014, 11:23:15)
[GCC 4.0.1 (Apple Inc. build 5493)]
Pandas version: 0.13.1
DanT 的評論為我解決了這個問題,matplotlib 和 pycharm 在 linux 上使用 GTKagg 后端。 導入 matplotlib 后,我會收到以下錯誤:
>>> import matplotlib as mpl
Backend GTKAgg is interactive backend. Turning interactive mode on.
Failed to enable GUI event loop integration for 'gtk'
當繪制這樣的東西時:
from matplotlib import pyplot as plt
plt.figure()
plt.plot(1,2)
plt.show()
一個數字屏幕會彈出,但沒有圖表出現。 使用:
plt.show(block=True)
正確顯示圖形。
就我而言,我想做以下事情:
plt.bar(range(len(predictors)), scores)
plt.xticks(range(len(predictors)), predictors, rotation='vertical')
plt.show()
遵循此處的混合解決方案,我的解決方案是在此之前添加以下命令:
matplotlib.get_backend()
plt.interactive(False)
plt.figure()
有以下兩個進口
import matplotlib
import matplotlib.pyplot as plt
在我的情況下,似乎所有命令都是必需的,帶有 ElCapitan 和 PyCharm 2016.2.3 的 MBP。 問候!
在非交互式環境中,我們必須使用 plt.show(block=True)
對於那些在 IDE 中運行腳本的人(而不是在 python 控制台或筆記本等交互式環境中工作),我發現這是最直觀和最簡單的解決方案:
plt.imshow(img)
plt.waitforbuttonpress()
它顯示圖形並等待用戶單擊新窗口。 只有這樣它才會恢復腳本並運行其余的代碼。
需要為 pycharm 設置一個屬性。
import matplotlib.pyplot as plt
plt.interactive(False) #need to set to False
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
plt.show()
將導入更改為:
import matplotlib.pyplot as plt
或使用這一行:
plt.pyplot.show()
我正在使用 Ubuntu,我按照@Arie 上面所說的進行了嘗試,但僅在終端中使用了這一行:
sudo apt-get install tcl-dev tk-dev python-tk python3-tk
它奏效了!
在 Pycharm 中,有時 Matplotlib.plot 不會出現。
因此,在調用plt.show()
請檢查plt.show()
的右側工具欄。 在 SciView 中,每個生成的圖都將被存儲。
當我嘗試繪制直方圖和以下點對我有用時,我遇到了上述錯誤。
操作系統:Mac Catalina 10.15.5
Pycharm 版本:社區版 2019.2.3
Python 版本:3.7
從 :
import matplotlib.pylab as plt
到:
import matplotlib.pyplot as plt
從:
plt.pyplot.hist(df["horsepower"])
# set x/y labels and plot title
plt.pyplot.xlabel("horsepower")
plt.pyplot.ylabel("count")
plt.pyplot.title("horsepower bins")
到 :
plt.hist(df["horsepower"])
# set x/y labels and plot title
plt.xlabel("horsepower")
plt.ylabel("count")
plt.title("horsepower bins")
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.