Pythonで可視化入門
Pythonでいい感じのグラフを書いてみたい!でも面倒!よくわからない!
これを読めばそんなあなたも簡単にいい感じのグラフがかける!
この記事では、Pythonのライブラリである、定番のmatplotlibとseaborn、pandasを使った可視化、インタラクティブなplotly、複数グラフ表示が簡単にできるラッパーであるholoviewsの簡単な解説をします。
Pythonの可視化ライブラリ
matplotlib:https://matplotlib.org/(公式)
定番のmatplotlibです。まずはギャラリー ( https://matplotlib.org/gallery/index.html)でいろいろなグラフを見てみましょう。グラフがたくさん並んでいて楽しいですね!
seaborn:https://seaborn.pydata.org/(公式)
matplotlibをベースにしたseabornです。こちらもギャラリー(https://seaborn.pydata.org/examples/index.html)を見てみましょう。ヒートマップがおしゃれですね!
pandas:https://pandas.pydata.org/index.html(公式)
表計算で便利なpandasです。DataFrame形式のデータをpandas.DataFrame.plot(http://pandas.pydata.org/pandas-docs/stable/visualization.html)でグラフを書くのが一番手間がかからない気がします。bar(棒グラフ)やhistogramやscatter(散布図)を作るならこれで十分なことが多いです。DataFrameの.describe (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html)で統計量が簡単に計算できるので、グラフがあっているかの確認も一連の流れでできます。
plotly:https://plot.ly/(公式)
インタラクティブに動かせるplotlyです。https://plot.ly/python/(Python用) を見てみると、なんとグラフを動かせます!楽しい!Kaggleでもよく見ます。データ構造を調べるのに便利だからかもしれないですね。(例https://www.kaggle.com/andresionek/what-makes-a-kaggler-valuable?utm_medium=social&utm_source=twitter.com&utm_campaign=Weekly-Kernel-Awards) Dashと組み合わせると ( https://plot.ly/products/dash/) 簡単にWebアプリにできます。
holoview:http://holoviews.org/(公式)
Pythonの可視化ツールはHoloViewsが標準になるかもしれない(https://qiita.com/driller/items/53be86cea3c3201e7e0f)とまで言われるholoviewは、matplotlibやplotly、bokehを簡単に使えるようにするラッパーです。特筆すべき機能として、introduction(http://holoviews.org/getting_started/Introduction.html)をみるとわかるのですが、複数グラフ表示は足し算(例:Compositional Layouts layout =scatter +hv.Histogram
)、オーバーレイは掛け算(例:Compositional Overlays image +image*points
)で定義できとてもシンプルに書くことができます。
可視化のまとめ(kaggle:https://www.kaggle.com/maheshdadhich/strength-of-visualization-python-visuals-tutorial)もよくまとまっていて非常に勉強になります。
そのほかにも、tensorflowの embedding https://www.tensorflow.org/guide/embeddingから Mnist や Word2Vecのデモ http://projector.tensorflow.org/(重いかも) や https://distill.pub/も動かしてみると楽しいです!
まとめ
- holoview最強説(plotlyも使えるラッパーなので)
- 楽にしたいならpandasのplot、動かしたければplotly!
keywordでググると詳しい記事がたくさん出てきます。上記以外の可視化手法や面白いものあれば教えてください!
- 前の記事 : Twitter自動投稿あれこれ
- 次の記事 : Mockinbirdを用いたPAR-CLIP解析
- 関連記事 :