インタラクティブな Matplotlib 図を保存する 質問する

インタラクティブな Matplotlib 図を保存する 質問する

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 の図を保存する

おすすめ記事