くろねこ日記

ソフトウェアに関する技術メモが多いです.

matplotlibのグラフ本体を保存する

はじめに

pythonにはmatplotlibというグラフを扱えるライブラリがあります.

このライブラリでは手軽にデータをプロットしてグラフを生成できるのですが,Xの機能にはグラフを画像としてエクスポートする機能しかなく,グラフ本体を保存するということができません.

そこでpickleというツールを使うことで簡単にグラフ本体を保存することができるので今日はその使い方をメモしておきます.

頻繁に使うのですがよく忘れてしまうので...

pickleの使い方

pickleはmatplotlibをインストールした段階で付属してくると思います. ここでは簡単な線形グラフを保存してみます.

グラフ書き出し

import matplotlib.pyplot as plt
import pickle

x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 2, 3, 4, 5]
fig = plt.plot(x, y)
filename = open('test.pickle', 'wb')
pickle.dump(fig, filename)
filename.close()

これだけでtest.pickleというファイル名で保存されます. 保存のときにはバイナリで書き出す必要があるので,'wb'の箇所は忘れないようにしてください. もし

filename = Open('test.pickle', 'w')

だとバイナリを文字列として扱えないというエラーがでてしまうので気をつけてください

グラフ読み込み

import matplotlib.pyplot as plt
import pickle
filename = open('test.pickle', 'rb')
fig = pickle.load(filename)
plt.show()

これで読み込めると思います.グラフが描画されたのを確認してください.

まとめ

matplotlibのグラフ本体を保存する方法を紹介した.

これで後からグラフだけ編集ができるようになったので便利.