Pandasのグラフ保存#
※記事内に商品プロモーションを含むことがあります。
公開日
参考
Pandasを使わずMatplotlib単体でグラフを出力して保存する場合、Matplotlib グラフの保存を参照ください。
PandasのSeries, DataFrameで出力したグラフを保存する方法として、以下の2つを解説します。
最初の方法を推奨しますので、2番目の方法は読み飛ばして頂いて結構です。
Matplotlibと連携#
Matplotlibと連携してPandasのグラフを保存する方法(推奨)を解説します。
以下のようにMatplotlibのplt.subplots()
でグラフを作成し、戻り値のax
(Axes
オブジェクト) 取得します。
このax
をplot()
メソッドのax
引数に与えて、MatplotlibとPandasのグラフを連携させます。
その後、fig.savefig()
の引数に保存するファイル名を指定します。
fig.savefig()
のオプションについては、Matplotlib グラフの保存 を参照ください。
なお、グラフを表示させたくない場合はplt.show()
の代わりにplt.clsoe()
を実行します。
import pandas as pd
import matplotlib.pyplot as plt
sr = pd.Series([1, 3, 2], index=[0, 10, 20])
fig, ax = plt.subplots()
sr.plot(ax=ax)
fig.savefig("pandas_figure1.png")
plt.show()
plotメソッドの戻り値を使用#
この方法は、plot()
メソッドの戻り値がAxes
オブジェクトであることを利用します。
以下のように戻り値ax
のfigure.savefig()
メソッドに保存するファイル名を与えて実行します。
この方法は簡単に書ける利点がありますが、欠点もあります。
複数のSeriesやDataFrameのplot()
メソッドを連続して実行すると、前のデータが後のグラフにも描画されてしまいます。
そのため、前述のMatplotlibと連携する方法を推奨します。
ax = sr.plot()
ax.figure.savefig("pandas_figure1.png")
なお、ax
はMatplotlibのAxes
オブジェクト、ax.figure
はFigure
オブジェクトです。
print(type(ax))
print(type(ax.figure))
<class 'matplotlib.axes._axes.Axes'>
<class 'matplotlib.figure.Figure'>