Pandasの可視化の結果をbase64エンコードする

やりたかったのはタイトルの通りです。
matplotlibやpandasのグラフを使い回したいことがあり、ローカルに保存せずにbase64にする方法を確認していました。

base64に関しては過去に調べていたので、なんとなくあたりは付けやすかったです。

esu-ko.hatenablog.com

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame(np.random.rand(100,3),columns=['a','b','c'])

df.cumsum().plot.line()

# tempとして書き込む
from io import BytesIO
img_in_memory = BytesIO()
plt.savefig(img_in_memory,format='png')
img_in_memory.seek(0)

#base64にエンコードする
import base64
img_base64 = base64.b64encode(img_in_memory.getvalue())

これで、画像をサーバーからとばしたり、ローカルに保存せず使いまわしたりができるようになりました。