可視化
Data Visualization
概要
可視化とは、物事の関係性を視覚的に捉えられるように、データを画像・グラフ・図表などに変換することを言います。その目的は以下のように、データから価値や知恵を生み出すことにあります。
Data → Information(構造化) → Knowledge(知見)→ Wisdom(知恵)
様々なグラフ
- ヒストグラム:縦軸に度数、横軸に項目を対応させ、事項間の度数を比較するもの。度数分布図、柱状グラフともいいます。
- ボックスプロット(箱ひげ図):データのばらつきを、箱(box)と、その両側に出たひげ(whisker)で表現する図。特に品質管理でよく用いられます。
- 散布図:縦軸、横軸に変数を対応させて、データを点でプロットしたもの。項目間の相関が見て取れます。
- 折れ線グラフ:時系列の推移を表すもの
- 棒グラフ:項目間の値を比較するもの
- 円グラフ:円図形を扇形に分割し、事項の構成比率を表すもの。
- ヒートマップ:2次元データの個々の値を色や濃淡として表現したもの
Topics
- ナイチンゲールの鶏頭図(1858)
クリミア戦争における月別の死因を可視化したもの。赤色が負傷、青が病気、黒がその他を意味していて、グラフからは負傷による死亡よりも病気による死亡が圧倒的に多いことがわかります。
出典:
- データインク比
エドワード・タフテによる「良いグラフィック」の指標で、「グラフィック全体の印刷にかかったインク量のうち、データを伝えるために用いられたインク量の比率が 1.0 に近いほど良い・・と考えられます。Data-ink ratio = Data-ink / total ink used to print the graphic
Edward Tufte, 1992, The Visual Display of Quantitative Information
Python ライブラリ
以下、ビジュアライゼーションに関連する Python ライブラリを紹介します。詳細は個々のページをご覧ください。
基本データ処理用のライブラリ
- NumPy|数値計算
https://numpy.org/
- Pandas|データフレームの活用
https://pandas.pydata.org/
- janome|日本語の形態素解析器
https://mocobeta.github.io/janome/
ビジュアライゼーション用のライブラリ
- Seaborn|matplotlib をベースにした美麗な可視化
https://seaborn.pydata.org/
- Plotly|動的グラフ作成
https://plotly.com/python/
- Folium|地図・位置情報の可視化
https://python-visualization.github.io/folium/
- WordCloud|ワードクラウドの描画
https://amueller.github.io/word_cloud/
- Pillow|画像処理
https://pillow.readthedocs.io/
開発が停止しているPIL(Python Image Library)からフォークされたライブラリ
サンプルコード
- 基本的な統計グラフ Matplotlib
https://github.com/koichi-inoue/DataScience/blob/main/StatisticalGraph.ipynb
- ヒストグラムの作成例 Matplotlib & Seaborn
https://github.com/koichi-inoue/DataScience/blob/main/Histogram.ipynb
わかりやすい「成績データ」をサンプルデータとして使っています。
- 地図情報の可視化 Plotly, Folium
https://github.com/koichi-inoue/DataScience/blob/main/GeographicVisualization.ipynb