Python

[Python] データフレームからグラフを生成して、画像で保存する。

仕事で、こんな感じのエクセルデータからグラフを生成したいことってよくあるんですよね。

 

 

y1 y2
x1 1 4
x2 2 5
x3 3 6

 

 

 

 

今までは手作業でやってたんですけど、Python使うと、エクセル読み込んで、グラフを生成して、それをエクセルに書き出したり、画像として保存できたりと、本当にありとあらゆることができるという事を最近知りました。

 

 

 

 

という事で、今後は、エクセルでグラフを作ったりする仕事は全部Pythonでやろうと思っています。

 

 

 

 

第一段階として、エクセルデータを読み込んで、グラフを生成して、画像で保存するという事をやってみました!

 

 

 

 

画像で保存するというところが、なかなか日本語でいい情報が見つからなかったので、参考になればと思います。

 

 

 

 

 

必要なモジュールをインポート

まずはじめに、必要なライブラリをインポートする必要があります。今回必要なのは、pandasというモジュールとmatplotlib.pyplopなので、これらをインポートします。

 

 

 

 

Excelファイルを読み込む

次に、pandasのread_excelというメソッドを使って、エクセルファイルを読み込みます。

 

 

 

ちなみに、上のように読み込むと、行方向に0,1,2というインデックス番号が追加されます。インデックスはx1,x2,x3でいいという場合は、以下のように読み込むといいです。

 

 

 

 

画像を表示させてみる

ここまではエクセルファイルの読み込みですね。試しに、今読み込んだデータからグラフを作って表示させてみましょう。

 

 

 

こんな画像が表示されるはずです。

 

 

 

画像を保存する

次は、この画像を保存します。まずはそのための準備です。

 

 

 

ここで、え?って感じになる人が多いんじゃないでしょうか。私もそうでした。これは、pandas.DataFrame.plotのドキュメントを見るとわかるのですが、df.plot()と書くとaxesというオブジェクトをreturnするようになっています。

 

 

 

じゃぁ、axesって何かというと、こちらに説明が載ってます。グラフを描くためのクラスという感じでしょうか。

 

 

 

で、下〜の方にget_figureというプロパティがあって、これを実行するとFigureインスタンスを返すらしいです。これをsavefig(”)してあげると、見事に画像が保存されます。

 

 

 

エクセルファイルからデータを読み込んで、画像保存するところだけを抜き出すと下のようになります。

 

 

 

参考になれば嬉しいです!

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です