Matplotlib の図を保存して、再度開いて通常の操作を復元できるようにする方法はありますか? (MATLAB の .fig 形式のように?)
私は、これらのインタラクティブな図を生成するために、同じスクリプトを何度も実行していることに気づきました。あるいは、プロットのさまざまな側面を示すために、複数の静的 PNG ファイルを同僚に送信しています。私はむしろ、図オブジェクトを送信して、同僚自身にそれを操作してもらいたいと思っています。
ベストアンサー1
これを実行する方法がわかりました。@pelson が言及した「実験的な pickle サポート」は非常にうまく機能します。
これを試して:
# Plot something
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
ax.plot([1,2,3],[10,-10,30])
インタラクティブな調整が終わったら、図オブジェクトをバイナリ ファイルとして保存します。
import pickle
pickle.dump(fig, open('FigureObject.fig.pickle', 'wb')) # This is for Python 3 - py2 may need `file` instead of `open`
後で図を開くと、調整が保存され、GUI のインタラクティブ性が有効になります。
import pickle
figx = pickle.load(open('FigureObject.fig.pickle', 'rb'))
figx.show() # Show the figure, edit it, etc.!
プロットからデータを抽出することもできます。
data = figx.axes[0].lines[0].get_data()
(線、pcolor、imshowに有効です -pcolormeshはいくつかのトリックを使ってフラット化されたデータを再構築します。
私は素晴らしいヒントをもらいましたPickle を使用して Matplotlib の図を保存する。