1. ホーム
  2. matplotlib

[解決済み] ipythonで表示せずにpylab.savefigを呼び出す。

2022-05-06 05:08:36

質問

IPython notebookで表示せずに、ファイルに図を作成したいのですが、どうすればいいですか?私は、以下の間の相互作用について明確ではありません。 IPythonmatplotlib.pylab という点で。しかし、私が pylab.savefig("test.png") に保存されるだけでなく、現在の図が表示されます。 test.png . 大きなプロットファイルのセットを自動で作成する場合、これはしばしば望ましくないことです。あるいは、他のアプリケーションで外部処理するための中間ファイルが必要な場合です。

になっているかは不明ですが matplotlib または IPython ノートの質問です。

解決方法を教えてください。

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

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

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

EDITです。 プロット表示機能を失いたくない場合は インタラクティブモード を呼び出すだけです。 plt.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()