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