読者です 読者をやめる 読者になる 読者になる

存在を忘れられる備忘録

あれこれTwitterじゃ流れるから残しときたい書き物用

csv ファイルを Python 使って一発でグラフにする話

Python

Arduino で SD カードにとったログをグラフ化する作業にいちいちLibreOffice 使ってるのかなり頭悪いのでちょっと勉強がてら書きました. って言っても matplotlib と numpy が予想以上に強力だったので何もしてないに等しいですが. 今後も同じことがしたくなることがありそうなので備忘録に.

用意するもの

  • matplotlib

多分 pip で入ると思いますが依存関係足りないって言われることもあるみたいなので各自頑張ってください. 入れた時のこと覚えてない.

コード

解説

今回は最初に実行時間,後ろに5つのデータの数値がカンマ区切りで続くデータを, x軸が実行時間, y軸がデータの数値となるグラフにしたかったのでそのようになっています.

np.loadtxt()csv 風のファイルを numpy の array オブジェクトにしてくれます. delimiter=',' で区切り文字の指定. unpack=True とすることで各列ごとの array にしてくれます. unpack しなかったら二次元配列で返ってくるみたいです.

あとは plt.plot() に x軸の値が順に並んだ array, y軸の値が順に並んだarray を渡してあげればグラフにしてくれます. 第3引数で色と線(点)の形式を指定できて, label を指定すれば plt.legend() で凡例も表示してくれます.

plt.subplot() でグラフの表示領域を分割できるが, 引数が若干分かりにくい気がします. 引数の数字は高位の桁から順に上下の分割数, 左右の分割数, インデックスを表すそうです.

そして, plt.show() でグラフの表示, やったね.