web-dev-qa-db-ja.com

matplotlibプロットウィンドウが表示されない

64ビットでPython 2.7.3を使用しています。64ビット用にpandasとmatplotlib 1.1.1の両方をインストールしました。今すぐ、私のプロットは何も表示されていません。いくつかの異なるデータフレームからプロットしようとした後、私はフラストレーションをあきらめて、以下の最初の例を試してみました http://pandas.pydata.org/pandas-docs/dev/visualization .html

入力:

import matplotlib.pyplot as plt
ts = Series(randn(1000), index=date_range ('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
pylab.show()

出力:

Axes(0.125,0.1;0.775x0.8)

そして、プロットウィンドウは現れませんでした。私が読んだ他のStackOverflowスレッドは、DLLがない可能性があることを示唆しています。助言がありますか?

16
user1518837

これがpandas問題であるとは確信していません。

する

_import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
_

プロットを育てる?

そうでない場合:

どのようにしてmatplotlibをインストールしましたか?ソースからのものでしたか、それともパッケージマネージャー/ビルド済みのバイナリからインストールしましたか?

あなたが実行した場合、私は疑っています:

_import matplotlib            
print matplotlib.rcParams['backend']
_

結果は非GUIバックエンドになります(ほぼ間違いなく "Agg")。これは、適切なGUIツールキットがないことを示唆しています(私は個人的にTkinterを使用しています。つまり、私のバックエンドは「TkAgg」として報告されます)。

これに対する解決策はオペレーティングシステムによって異なりますが、GUIライブラリ(Tkinter、GTK、QT4、PySide、Wxのいずれか)をインストールできる場合は、pyplot.show()がウィンドウをポップアップするはずです。

HTH、

29
pelson

Virtualenv内から作業しているときにこの問題が発生しました。

原因

この問題の原因は、_pip install matplotlib_を実行すると、バックエンド(マシンにインストールされている場合でも)が見つからないため、「agg」バックエンドを使用するため、プロットを行わず、単に書き込むだけです。ファイル。これが事実であることを確認するには、次のようにします:python -c "import matplotlib; print matplotlib.get_backend()"、おそらくaggが表示されます。

ただし、システム(virtualenvの外)でmatplotlibを正常に使用できました。また、さまざまな理由により、PySide、PyQtのインストール、またはTkAggでの動作に失敗しました。

解決

私は最終的に自分のシステムバージョンのmatplotlibへのリンクを作成しました(envの外部から開始)。

_...$ pip install matplotlib
...$ cd /to/my/venv/directory
...$ source venv/bin/activate
(venv) .... $ pip uninstall matplotlib
(venv) .... $ ln -s /usr/lib/pymodules/python2.7/matplotlib $VIRTUAL_ENV/lib.python*/site-packages
_

その後、matplotlibを使用すると、プロットが表示されます。 matplotlibのローカルバージョンは別の場所にある可能性があります。それがどこにあるかを確認するには、(envの外、Pythonで)

_...$ python -c 'import matplotlib; matplotlib.__file__'
_
1
Peter