web-dev-qa-db-ja.com

pyplot.show()を呼び出しても、matplotlibに描画が表示されない

Matplotlibにはヘルプが必要です。はい、pyplot.show()を呼び出すことを忘れませんでした。

$ ipython --pylab

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

出力としてmatplotlib.lines.Line2D at 0xade2b2cを返します。

p.show()

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

詳細:

私が使う、

  • ウブンツ
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1
153
Baskaya

~/.matplotlib/matplotlibrcでバックエンドをtemplateに設定した場合、あなたの症状を再現できます。

〜/ .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']

参照:

161
unutbu

私は(virtualenv内で)matplotlibをインストールしたので、Ubuntu 12.04でまったく同じ問題に遭遇しました。

pip install matplotlib

長い話を短くするために、私のアドバイスは:matplotlibをpipや手動でインストールしようとしないでください。本物のパッケージマネージャ(例えばapt-get/synaptic)にそれをインストールさせてください。

残念ながら、matplotlibのバックエンド(実際にあなたのプロットをレンダリングするための代替方法)は、pipが扱わないであろうあらゆる種類の依存関係を持っています。さらに悪いことに、それは静かに失敗します。つまり、pip install matplotlibはmatplotlibを正常にインストールしたように見えます。しかし、それを使用しようとすると(例えばpyplot.show())、プロットウィンドウは表示されません。私はウェブ上の人々が提案するさまざまなバックエンド(Qt4Agg、GTKなど)を試してみましたが、それらはすべて失敗しました(つまり、matplotlib.pyplotをインポートしようとすると、欠けている依存関係をインポートしようとするのでImportErrorが得られます)。それから私はそれらの依存関係をインストールする方法を研究しました、しかしそれは私がPython以外のパッケージ依存関係を持っているどんなパッケージのための実行可能なインストール解決策としても(virtualenvの中で)pipの使用をあきらめたくなりました。

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

65
Christopher Lee

%matplotlibインライン

私がノートブックで作業するために、プロットが機能する前に上記の行を追加してください。

31
grampus

今後の参考のために、

私は同じ問題に遭遇しました - pylabはipythonの下で表示されていませんでした。問題はipythonの設定ファイル{ipython_config.py}を変更することで修正されました。設定ファイル内

c.InteractiveShellApp.pylab = 'auto'

Autoをqtに変更したところグラフが表示されます

9
anon

ただタイプ:

plt.ion()

23:30に https://www.youtube.com/watch?v=1zmV8lZsHF4 を参照してください。

私のインポートのためにpltが使われています:import matplotlib.pyplot as plt

私はiTerm2とMac上でpython2.7を使用しています。

8
tnuts

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

%matplotib inline
%pylab inline

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

6

これを機能させるには、ソースから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が言っているように、バックエンドを変更することによって、私はちょうどすべての異なるバックエンドもまた動かないというもっと多くの問題に遭遇しました。

2
Rikki

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

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np
2
Pau

私はwindow = Tk()、そしてwindow.mainloop()が必要であることがわかりました

0
R Keene

コードを実行した後に、

import pylab as p
p.show()
0
Shrish Trivedi

この起動スクリプトを必ず有効にしてください。(Preferences> Console> Advanced Options)

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

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

0
Covich

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

pip uninstall matplotlib
pip install matplotlib
0
Seanny123