matplotlibことはじめ

仕事でmatoplotlibを使ってログデータを可視化する作業があったので、とりあえずざっくりとしたメモ。

環境

Windows7 64bit
Python 2.7.x

準備

numpy,scipy,matplotlibを入手
64bit版はUnofficial Windows Binaries for Python Extension Packagesからwheelで入手できる。ファイル名のcp以下の番号がPythonのバージョンであることに注意。(2.7ならcp27を選択)

インストール

wheelがない場合は事前にpipでwheelをインストールしておく。
numpy,scipyをインストール後,matplotlibをインストール

$pip install scipy‑0.15.1‑cp27‑none‑win_amd64.whl
$pip install numpy‑1.8.2+mkl‑cp27‑none‑win_amd64.whl
$pip install matplotlib&#8209;1.4.3rc1&#8209;cp27&#8209;none&#8209;win_amd64.whl</pre>

やりたかったこと

単一グラフの描画

  • 複数の系列データを1つのグラフにまとめて描画
  • 複数グラフの描画
  • 複数の系列データごとにグラフで描画

まあexcelとかでやれば、セルを選択して描画とかできる簡単な作業なのだけど、描画するのにデータを加工したりする作業が発生するので、バッチ処理で一気にグラフまで生成したいというのが目的。

matplotlibのインポート

import matplotlib.pyplot as plt

単一グラフの描画

グラフのタイトル

plt.title('title')

x軸・y軸のラベル

plt.xlabel('x')
plt.ylabel('y')

x軸・y軸の範囲

plt.xlim(0, 100)
plt.ylim(0, 50)

描画
x軸のデータとそれに対応するy軸のデータをリスト形式でplot()に渡す。
系列データを重ねて描画したい場合は、新たなデータをplot()に渡せばOK

plt.plot(x, y)

グラフの保存

plt.savefig('hoge.png')

凡例
複数の系列データを描画した場合、どのグラフが何を示しているかわからんので凡例を入れます
plot()を呼ぶ際に引数にラベル名を渡して,最後にlegend()を呼べばOK

plt.plot(x, y, label='a')
plt.plot(i, j, label='b')
plt.legend()