148

IPython ノートブック内に表示せずに、ファイルに Figure を作成する必要があります。IPythonこの点に関するとの間の相互作用については明確ではありませんmatplotlib.pylab。しかし、pylab.savefig("test.png")現在の図を呼び出すと、に保存されるだけでなく表示されtest.pngます。大規模な一連のプロット ファイルの作成を自動化する場合、これは多くの場合望ましくありません。または、別のアプリによる外部処理用の中間ファイルが必要な場合。

これがノートブックの質問matplotlibかどうかはわかりません。IPython

4

2 に答える 2

216

これは matplotlib の質問です。「Agg」など、ユーザーに表示されないバックエンドを使用することで、これを回避できます。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

plt.plot([1,2,3])
plt.savefig('/tmp/test.png')

編集:プロットを表示する機能を失いたくない場合は、Interactive Modeplt.show()をオフにし、プロットを表示する準備ができたときにのみ呼び出します。

import matplotlib.pyplot as plt

# Turn interactive plotting off
plt.ioff()

# Create a new figure, plot into it, then close it so it never gets displayed
fig = plt.figure()
plt.plot([1,2,3])
plt.savefig('/tmp/test0.png')
plt.close(fig)

# Create a new figure, plot into it, then don't close it so it does get displayed
plt.figure()
plt.plot([1,3,2])
plt.savefig('/tmp/test1.png')

# Display all "open" (non-closed) figures
plt.show()
于 2013-03-30T00:35:53.430 に答える