Pythonにはmatplotlibというグラフを描画するライブラリ(モジュール)があります
データをグラフ化しなければならない事態があったため、matplotlibを使ってみました
その際、色々メモしたためここに走り書きで残しておきます
動作環境
- Windows10 64bit
- Python 3.6.2
インストール
matplotlibのほかにseabornというモジュールもいれます
seabornをいれることでグラフがおしゃれになります
- matplotlib
$pip install matplotlib
- seaborn
$pip install seaborn
csvファイルを扱う場合はpandasをいうモジュールをいれると簡単に読み込み、グラフへ表示ができます
- pandas
$pip install pandas
入力データ
テストとして下記のようなデータを使ってみます
加速度と角速度のデータです(使用するデータは加速度のみ)
cc_x,Acc_y,Acc_z,Gyro_x,Gyro_y,Gyro_z 1.01,0.02,-0.01,8.38,0.6,-7.1 1.06,0.02,0,-1.08,-2.06,-6.24 1.12,-0.02,0,-1.88,0.78,-6.27 1.13,-0.07,0,-0.53,1.63,-4.77 1.11,-0.13,-0.01,2.33,3.18,-4.42 1.05,-0.18,0.02,1.93,5.56,-4.59 1.01,-0.23,0.05,4.43,2.82,-3.4 0.95,-0.26,0.08,5.14,3.23,-1.73 0.89,-0.27,0.11,5.56,0.54,-0.01 0.85,-0.26,0.15,4.53,-2.34,2.04 ・ ・ ・
プログラム
#!/usr/bin/python # -*- Coding: utf-8 -*- import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties df = pd.read_csv('./hoge.csv') sns.set() plt.rcParams['font.family'] = 'Ricty Diminished' plt.plot(range(0,len(df.index)),df["Acc_x"], ls='-', marker='o', label='x軸') plt.plot(range(0,len(df.index)),df["Acc_y"], ls='-', marker='*', label='y軸') plt.plot(range(0,len(df.index)),df["Acc_z"], ls='-', marker='^', label='z軸') plt.xlabel("plat(数)") plt.ylabel("値(g)") plt.legend(loc="upper center", bbox_to_anchor=(0.5,-0.08), ncol=5) plt.tight_layout() plt.show()
やってることは、
- pandasでcsvを読み込み
- seabornにてグラフをおしゃれにするように設定
- 行列名に日本語を扱いためフォントを”Ricty Diminished”に変更
- 加速度x軸,y軸,z軸のプロット設定
- x軸、y軸のラベルを設定
- グラフラベルを下に置くようにする(seabornを入れるとグラフ内に入れると見づらくなるため外に出す)
- いい感じにグラフを自動調整
- グラフの表示
plt.plotの引数は下記のサイトが非常に参考になります
matplotlib で使える marker を全て試してみる-python | コード7区
matplotlib の marker には ● とか ▲ など、いろいろな形が用意されています。現在、35種類のマーカーが使えるようなので、ひととおり試してみます。マーカーの大きさはmarkersizeで指定します。marker=’$…$’の書式で、任意の文字列をマーカーにすることもできます。
コメント