Pythonでの可視化モジュールの選定
データ分析では、データを可視化して観察を行い、「気づき」を得ることはとても重要です。
Python でグラフを可視化を行うときの代表的なモジュールには、次のものがあります。
静的なグラフを描画するもの
matplotlib
歴史もあり柔軟性も高いが、なにかにつけ設定が必要でコードが長くなりやすい。
細かな設定を行うとすると膨大なドキュメント(2500ページ超)を読み込むことになる
描画に時間を取られるため、分析はしづらい
Pandas
matplotlib をより使いやすく呼び出してくれます。
時系列データを含め基本的なグラフをPandas + matplotlib で描画できます。
seaborn
matplotlib をベースに開発されている
とても見栄えがよい美しいグラフを簡単に描画できる
データ分析に集中することができる
インタラクティブなグラフを描画するもの
Plotly
plotly社 が公開しているデータ解析、可視化を行うツール
インタラクティブなグラフを描画できる
APIライブラリも提供されているが登録が必要
Dash
Plotly社が開発しているWebアプリを作成するためのフレームワーク
Plotlyと合わせることでWeb上でインタラクティブなグラフを描画できる
bokeh
インタラクティブなデータ可視化を実現する軽量フレームワーク
ストリーミングデータの可視化もできる
単独で使うこともできるが、少しクセがある
DjangoやFlaskなどに組み込んでデータ可視化アプリケーションを作れる
pandas-bokeh
Pandasのデータフレームからbokehを使ってインタラクティブな描画ができる
pandas_ui
Jupyter notebook と連携して簡単なクリック操作でデータの可視化もできる
可視化だけでなくPandasの操作もクリック操作で処理できる
holoviews
データ分析と可視化を簡単に行うことができる
拡張機能を使うと bokeh を使ってインタラクティブな描画ができる
アプリケーション
PandasGUI
Pandasにグラフィカルユーザインタフェースを提供するアプリケーションとライブラリ
マウスをクリックするだけでパンダのデータフレームの表示や並べ替えができる
クリックだけでデータの可視化が可能
Swwtviz
驚くほど簡単に視覚化とデータセットの比較、および可視化をすることができるアプリケーション
Bamboolib
Jupyter NotebookやJupyterLab と連携したPandasのためのGUI
データフレームの一般的な変換と可視化、分析を行える
シンプルで任意にカスタマイズ可能ななPythonプラグインを提供
Orange3
オープンソースのワークフローベースのデータマイニングツール
データの前後処理、分類、モデリング、回帰分析、クラスタリング、可視化が行える
Mayavi
3次元科学データをプロットするためのアプリケーションとライブラリ
用途や目的によりいろいろな選択肢がありますが、
静的なグラフ描画であれば seaborn が第1候補の選択肢となるでしょう。
インタラクティブなグラフ描画であれば、holoviews + bokeh がお勧めです。
pandas-bokeh もデータフレームから簡単にインタラクティブなグラフを描画できて便利です。
グラフ種類と目的
統計計算やデータ分析をするときには、必ず何らかの目的があります。得られた結果を、その目的に合わせてうまく使うことがとても重要です。グラフは、結果を視覚的に表してくれるもので、データ分析や、得た知見を相手に伝えるときなどに便利です。
グラフにはいくつかの種類があり、それぞれ、向き不向きがあります。
ここでは、グラフの種類やそれぞれの用途ついてまとめておきます。
棒グラフ:2つのパラメタの大小関係を知りたい
折れ線グラフ:時系列にともなう変曲点、スパイク、傾向を知りたい
ヒストグラム または ヒートマップ:データの偏りを知りたい
散布図:2つのパラメタの相関関係を知りたい
パイチャート(円グラフ)または帯グラフ:あるパラメタについて構成比率を知りたい
箱ひげ図(BoxWhishker):データの散らばり具合を知りたい