matplotlibは私の図面を表示しませんが、pyplot.show()を呼び出します


175

matplotlibで必要なヘルプ。はい、pyplot.show()を呼び出すのを忘れませんでした。

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))

matplotlib.lines.Line2D at 0xade2b2c出力として戻ります。

p.show()

何も起こりません。エラーメッセージはありません。新しいウィンドウはありません。何もない。matplotlibpipを使用してインストールしましたが、エラーメッセージは表示されませんでした。

詳細:

私が使う、

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1

回答:


177

私は私のバックエンドを設定した場合templateでは~/.matplotlib/matplotlibrc、私はあなたの症状を再現することができます:

〜/ .matplotlib / matplotlibrc:

# backend      : GtkAgg
backend      : template

ファイルmatplotlibrcがディレクトリにない場合があることに注意してください~/.matplotlib/。この場合、次のコードはそれがどこにあるかを示しています。

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

~/.matplotlib/matplotlibrcバックエンドを編集してのようなものに変更するとGtkAgg、プロットが表示されます。マシンで利用可能なすべてのバックエンドをリストすることができます

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

次のようなリストが返されます。

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

参照:


2
私が試みたが、私のようなエラーに何かを得た:ImportError: No module named _backend_gdk
Baskaya

6
たくさんのコメントでごめんなさい。できます。Qt4Aggを試してみました。ありがとう:)。最後に、デフォルトのmatplotlibrcはどこにありますか、それを作成する方法はありますか?
バスカヤ2011

ばかげてすみません。私は見つけた
バスカヤ2011

8
この答えは古く、configが含まれているはずです~/.config/matplotlib/matplotlibrc(少なくともpython 3の場合)。私は関連する問題を抱えていましたが、それは~/.matplotlib/ディレクトリを作成したpython 2.7でmatplotlibを使用し、python 3がの構成を読み取らなかったことが原因であると思います~/.config/matplotlib/。削除~/.matplotlib/すると問題が解決しました。
naught101 2013

5
6年後、この問題はまだ存在しています...さて、なぜPythonが嫌いなのか覚えています。コードのすべての行の問題です。
pookie

70

Ubuntu 12.04でもまったく同じ問題が発生しました。これは、matplotlibを(virtualenv内に)インストールしたためです。

pip install matplotlib

簡単に言えば、pipを使用して、または手動でmatplotlibをインストールしないでください。実際のパッケージマネージャー(apt-get / synapticなど)にパッケージとそのすべての依存関係をインストールさせます。

残念ながら、matplotlibのバックエンド(実際にプロットをレンダリングする別の方法)には、pipが処理しないあらゆる種類の依存関係があります。さらに悪いことに、それは静かに失敗します。つまり、pip install matplotlibmatplotlibは正常にインストールされているようです。しかし、それを使用しようとすると(たとえばpyplot.show())、プロットウィンドウは表示されません。私はWeb上の人々が提案するさまざまなバックエンド(Qt4Agg、GTKなど)をすべて試しましたが、すべて失敗しました(つまり、matplotlib.pyplot ImportErrorをインポートしようとすると、不足している依存関係をインポートしようとしているために表示されます)。次に、これらの依存関係をインストールする方法を調査しましたが、Python以外のパッケージの依存関係があるパッケージの実行可能なインストールソリューションとして、pip(virtualenv内)の使用をあきらめたくなりました。

全体の経験から、matplotlibなどのソフトウェアをインストールするために、apt-get / synaptic(つまり、Ubuntuパッケージマネージャー)にクロールバックされました。それは完璧に機能しました。もちろん、それはあなたがあなたのシステムディレクトリにしかインストールできず、virtualenvの良さがなく、Ubuntuが配布しているバージョンに行き詰まっていることを意味します。


2
あなたの答えはビット長なので、OPの短縮を検討するかもしれません。
theJollySin 2012

5
--system-site-packagesオプションを試しましたか?
Tianyang Li

1
%Christopher Leeエラーやその他の不満なしに図が表示されない問題は、デフォルトのバックエンドがであるためpip installですagg。理由はわかりませんが、unutbuの回答に従って変更できます。pip最新バージョンをインストールする主な利点がありaptます- 古いバージョンをインストールします。必要なバグ修正/新機能が必要な場合があります。
drevicko 2013

2
無効化するだけでvirtualenvうまくいきました!また、システム全体(Ubuntu)のソースからmatplotlib 1.4をインストールできましたが、にはインストールできませんでしたvirtualenv
osa

1
そして、apt-getを使用できないWindows作業マシンで立ち往生している私たちのための解決策は何ですか?
ale19

33

%matplotlibインライン

ノートブックで作業する場合、プロットが機能する前に上記の行を追加します。


私が使用するために必要な%pylab inline@Bhanu Pratap Singh氏によって示されるように、私のノートPCに
リードサンドバーグ

10

今後の参考のために、

同じ問題が発生しました-pylabがipythonで表示されませんでした。この問題は、ipythonの設定ファイル{ipython_config.py}を変更することで修正されました。構成ファイル内

c.InteractiveShellApp.pylab = 'auto'

「auto」を「qt」に変更したところ、グラフが表示されました


5
または「ipython --pylab = qt」を使用
andrew cooke

これは機能しますが、部分的な解決策aggにすぎません。デフォルトのバックエンドがである場合、機能しません%pylab inline。また、スクリプトを直接実行したときにプロットも表示されませんpython myscript.py。unutbuの答えはどこでもそれを修正する必要があります。
drevicko 2013


8

私の問題を解決したのは、上部のipythonノートブックで以下の2行を使用することでした

%matplotib inline
%pylab inline

そしてそれはうまくいった。Ubuntu16.04とipython-5.1を使用しています


上記のコメントのフォーマットを修正してください...ありがとう。
Saras Arya 2016

完了- このブログ投稿はpylabをベースにしていますが、追加%pylab inlineすると機能する理由がわかります。
Bhanu Pratap Singh

2

これを機能させるには、ソースからmatplotlibをインストールする必要がありました。主な手順(http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/から):

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

@unutbuが言うように、バックエンドを変更することで、さまざまなバックエンドも機能しないという問題がロードに発生しました。


1
扱いはうまくいき、git cloneとpythonのセットアップ手順のみを使用しましたが、plt.show()で実行すると問題はありませんでした。
Steve

2

pylabをインポートする前に次の2行を追加するとうまくいくようです

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

0

この起動スクリプトを必ず有効にしてください:([設定]> [コンソール]> [詳細オプション])

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

標準のPYTHONSTARTUPが有効になっている場合、インタラクティブなプロットはありません


0

@Rikkiと同様に、でアップグレードすることmatplotlibでこの問題を解決しましたpip install matplotlib --upgrade。アップグレードできない場合は、アンインストールと再インストールが機能する可能性があります。

pip uninstall matplotlib
pip install matplotlib

0

私にとって問題は、macOSで空の matplotlibrcファイルを単に作成した場合に発生します~/.matplotlib。「バックエンド:macosx」を追加すると、問題が修正されます。

私はそれはバグだと思います:backendmatplotlibrcで指定されていない場合は、デフォルト値を取ります。



0

必要なことに気づきwindow = Tk()window.mainloop()


少し説明を追加できますか?他のソリューションとどのように違いますか?
Ralf Stubner、2018

-2

Ubuntu 12.04の場合:

sudo apt-get install python-qt4
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install -U distribute
ln -s /usr/lib/python2.7/dist-packages/PyQt4 .
ln -s /usr/lib/python2.7/dist-packages/sip.so .
pip install matplotlib
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.