シナプスパッケージシステムを使用してUbuntu 9.10にmatplotlibをインストールしました。ただし、次の簡単な例を試すと
>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]
プロットウィンドウが表示されません。プロットウィンドウを表示する方法に関するアイデアはありますか?
入力できます
import pylab
pylab.show()
または、ipython -pylab
を使用してください。
pylab
これ以上は推奨されません を使用しているため、今日では解決策は
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.show()
pylab.show()
は機能しますが、ブロックします(ウィンドウを閉じる必要があります)。
はるかに便利な解決策は、開始時にpylab.ion()
(インタラクティブモードをオン)にすることです。すべての(pylabに相当する)pyplot.*
コマンドはすぐにプロットを表示します。 インタラクティブモードの詳細 は、公式Webサイトにあります。
また、さらに便利なipython -pylab
(新しいバージョンでは--pylab
)を使用します。これにより、from … import …
部分をスキップできます(%pylab
も新しいIPythonで動作します)バージョン)。
これを試して:
import matplotlib
matplotlib.use('TkAgg')
Pylabをインポートする前に
以下のコードスニペットは、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()
エラーが表示されますか?これは、バックエンドを設定していないという問題の可能性があります。 Pythonインタープリターまたはホームディレクトリの設定ファイル(.matplotlib/matplotlibrc
)から設定できます。
バックエンドをコードで設定するには、次のようにします
import matplotlib
matplotlib.use('Agg')
ここで、「Agg」はバックエンドの名前です。どのバックエンドが存在するかは、インストールとOSによって異なります。
http://matplotlib.sourceforge.net/faq/installing_faq.html#backends
現代のIPythonは、オプションのバックエンドパラメーターとともに「--matplotlib
」引数を使用します。デフォルトは「auto」で、通常はMacとWindowsで十分です。 Ubuntuやその他のLinuxディストリビューションでテストしたことはありませんが、動作するはずです。
ipython --matplotlib
pylab.show()
がIPythonウィンドウをフリーズする問題に遭遇した場合(これはMac OS X固有である可能性がありますが、不明)、IPythonウィンドウでcmd-cを実行し、プロットウィンドウに切り替えると、ブレークアウトします。
明らかに、今後のpylab.show()
への呼び出しはIPythonウィンドウをフリーズせず、最初の呼び出しのみをフリーズします。残念ながら、matplotlibを再インストールするたびにプロットウィンドウの動作/ show()との相互作用が変わるため、この解決策が常に当てはまるとは限りません。
--pylab
はもはや Jupyter では機能しませんが、幸いなことにipython_config.py
ファイルにTweakを追加してpylab
とautoreload
の両方の機能を取得できます。
c.InteractiveShellApp.extensions = ['autoreload', 'pylab']
c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
--pylab
オプションを指定してIPythonを起動する場合、show()
またはdraw()
を呼び出す必要はありません。これを試して:
ipython --pylab=inline