テキストベースの数値データをグラフにplotして視える化するまでの3つの方法
今回次のようなタブ区切りのテキストベースのデータを用いてグラフで視える化するまでに3つの方法を試しましたので紹介します
Id Content 1 33 2 70 3 43 4 60 5 98
なお実行環境はUbuntu16.04ですが、今回紹介する3つの方法はMacOSXやWindowsでも動作すると思います。
1. Python + Pandas + Matplotlib + Jupyter
- Pandas公式HP: http://pandas.pydata.org/
- Matplotlib公式HP: http://matplotlib.org/
- Jupyter公式HP: http://jupyter.org/
コード
import matplotlib.pyplot as plt import pandas as pd # データの読み込み f = open("test.txt", "r") hoge = pd.read_table(f, index_col='Id') f.close() hoge.plot()
出力結果
所感
- 実際コードにしてみるとそんなに長くないけど、いろいろ試してうまくいくまでに結構時間がかかった
- 複雑なデータ解析をするときは役にたちそうだけど、軽いデータを取り扱うには重めの環境だと感じた
- もしかしてPandas使わなくてももっと簡単にプロットできたのかもしれない・・・
- Jupyterの保存形式でまるまる作業内容を保存できるのは嬉しい!
2. R + Rstudio
コード
# headerがあるときはheader=Tで認識してくれるらしい x <- read.table("~/Desktop/test.txt", header=T) # type="l"で折れ線グラフで表示させる plot(x, type="l")
出力結果
所感
- に、二行だと!!手軽に自分でデータを確認したいときにピッタリじゃないか!?
- あと細かいデータを確認したいとき、Rstudioのウィンドウを引っ張ってぐいっと引き伸ばすとグラフもぐいっと引き伸ばされるのは個人的に嬉しい機能でした
3. gnuplot
データの前処理
予めヘッダ行をコメントアウトしておきます
# Id Content 1 33 2 70 3 43 4 60 5 98
コード(というかコマンド)
gnuplot plot "test.txt" with line # 画像を保存する場合はこちら(20161209追記) set terminal png # 保存形式を指定 set output 'test.png' # 保存するファイル名を指定 plot "test.txt" with line
出力結果
所感
- gnuplot内部のコマンドでもある程度はデータ整形できるけど、いったんlinuxのコマンドで中間ファイル作ってからグラフを描画するほうがやりやすそう?
- Linuxのコマンドと親和性が高いので個人的にテンションあがりました!
まとめ
今回は素早く数値データのプロットをして視える化するのが出口だったので、Rstudioがベストプラクティスでした。
取り組む作業の出口によってベストな解法は変わると思いますので、いろいろなツールをかじっておくといいことがあるかもと思いました。
今日のひとこと
自分で作業していて、なんだかもやもやするときグラフにプロットしてみると以外な発見があるかも!
それではまた!