web-dev-qa-db-ja.com

matplotlibにプロットウィンドウがありません

シナプスパッケージシステムを使用してUbuntu 9.10にmatplotlibをインストールしました。ただし、次の簡単な例を試すと

>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]

プロットウィンドウが表示されません。プロットウィンドウを表示する方法に関するアイデアはありますか?

81
dzhelil

入力できます

import pylab
pylab.show()

または、ipython -pylabを使用してください。


pylabこれ以上は推奨されません を使用しているため、今日では解決策は

import matplotlib.pyplot as plt

plt.plot([1,2,3])

plt.show()
130
Peter

pylab.show()は機能しますが、ブロックします(ウィンドウを閉じる必要があります)。

はるかに便利な解決策は、開始時にpylab.ion()(インタラクティブモードをオン)にすることです。すべての(pylabに相当する)pyplot.*コマンドはすぐにプロットを表示します。 インタラクティブモードの詳細 は、公式Webサイトにあります。

また、さらに便利なipython -pylab(新しいバージョンでは--pylab)を使用します。これにより、from … import …部分をスキップできます(%pylabも新しいIPythonで動作します)バージョン)。

36
Eric O Lebigot

これを試して:

import matplotlib
matplotlib.use('TkAgg') 

Pylabをインポートする前に

18
linhares

以下のコードスニペットは、EclipseとPythonシェルの両方で機能します。

import numpy as np
import matplotlib.pyplot as plt

# Come up with x and y
x = np.arange(0, 5, 0.1)
y = np.sin(x)

# Just print x and y for fun
print x
print y

# Plot the x and y and you are supposed to see a sine curve
plt.plot(x, y)

# Without the line below, the figure won't show
plt.show()
10
neobot

エラーが表示されますか?これは、バックエンドを設定していないという問題の可能性があります。 Pythonインタープリターまたはホームディレクトリの設定ファイル(.matplotlib/matplotlibrc)から設定できます。

バックエンドをコードで設定するには、次のようにします

import matplotlib
matplotlib.use('Agg')

ここで、「Agg」はバックエンドの名前です。どのバックエンドが存在するかは、インストールとOSによって異なります。

http://matplotlib.sourceforge.net/faq/installing_faq.html#backends

http://matplotlib.org/users/customizing.html

9
Matti Lyra

現代のIPythonは、オプションのバックエンドパラメーターとともに「--matplotlib」引数を使用します。デフォルトは「auto」で、通常はMacとWindowsで十分です。 Ubuntuやその他のLinuxディストリビューションでテストしたことはありませんが、動作するはずです。

ipython --matplotlib
2
calvinvette

pylab.show()がIPythonウィンドウをフリーズする問題に遭遇した場合(これはMac OS X固有である可能性がありますが、不明)、IPythonウィンドウでcmd-cを実行し、プロットウィンドウに切り替えると、ブレークアウトします。

明らかに、今後のpylab.show()への呼び出しはIPythonウィンドウをフリーズせず、最初の呼び出しのみをフリーズします。残念ながら、matplotlibを再インストールするたびにプロットウィンドウの動作/ show()との相互作用が変わるため、この解決策が常に当てはまるとは限りません。

0
keflavich

--pylabはもはや Jupyter では機能しませんが、幸いなことにipython_config.pyファイルにTweakを追加してpylabautoreloadの両方の機能を取得できます。

c.InteractiveShellApp.extensions = ['autoreload', 'pylab']
c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
0
dashesy

--pylabオプションを指定してIPythonを起動する場合、show()またはdraw()を呼び出す必要はありません。これを試して:

ipython  --pylab=inline
0
Scofield77