Matplotlibの図をiPythonノートブックからファイルとして保存しようとしています。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
ax.plot([1,2])
fig.savefig('test.png')
IPythonノートブックのインラインビューは見栄えがいいです。
ただし、ファイル「test.png」はほとんど空です。プロットが右上にシフトしているように見えます。隅に目盛りラベル「1.0」と「0.0」があります。
インラインビューのように見えるiPythonノートブックからファイルを作成するにはどうすればよいですか?
解決した問題:'bbox_inches='tight'
引数をsavefigに追加します。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([1,1,1,1])
plt.plot([1,2])
savefig('test.png', bbox_inches='tight')
ここで何が起こっているのか分かりませんが、ファイルはiPythonノートブックのインラインファイルのようになりました。わーい。
実際、savefig
は適切に機能しています。 _add_axes
_を呼び出すとき、リストは長方形_[left, bottom, width, height]
_を指定します。 Figureは両方の軸で0から1になり、左下がOriginであるため、Figureの右上から始まる幅と高さ1の長方形を作成しています。おそらくax = fig.add_axes([0,0,1,1])
を実行したいでしょう。
インラインプロットが軸を配置した場所を考慮しない理由はわかりません。推測する必要がある場合、インラインバックエンドが自動的に境界ボックスを計算し、それに応じてインラインフィギュアを配置すると言うでしょう。