Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの中でも二変量での可視化について解説していきます。
単変量での描画については以前の記事を参照してください。
displotとは?
displotはSeabornライブラリの中で、2次元の分布を可視化するための便利な関数です。この関数は、ヒストグラムや密度曲線を描画することができ、それらを美しく見栄えの良いグラフにするためのオプションが多数用意されています。以下にdisplotの基本的な使い方と主要なパラメータについて説明します。
2変量分布とは
2変量分布とは、2つの確率変数の同時分布を表したものです。単に2つのヒストグラムを並べるのではなく、2変数間の相関関係なども表現されます。
displotの種類
分布プロットには、主に2つの種類があります。これに一つのオプションが追加できます。
- histplot() (with kind=”hist”; the default)
- kdeplot() (with kind=”kde”)
データの準備
今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset("penguins")
すべてに共通の引数
- data: プロットするデータのデータフレーム
- x: x軸のカテゴリデータの列名
- y: y軸のカテゴリデータの列名
histplot:ヒストグラム
histplot()の実装
ヒストグラムは、データの値の出現頻度を高さで表すグラフです。横軸はデータの値を表し、縦軸は各区間の値の出現回数(密度や確率に変換することも可能)を表します。
- データを区間(ビン)に分割し、各ビンの値の出現回数をカウントします。
- ビンの幅が狭いほど詳細な分布を捉えられますが、過度に狭いと雑音が目立ちます。
- カウント数を色の濃さでヒートマップ的に表現します。
ヒストグラムは分布の概形をパッと見て把握できる直感的なグラフです。
最小コード
sns.displot(data, x="bill_length_mm", y="bill_depth_mm")
様々なオプション
binwidth
データを区間(ビン)に分割するサイズを変更できる、ただしあまり幅を大きくとりすぎると特徴をうまく捉えられないので注意すること。
sns.displot(data, x="bill_length_mm", y="bill_depth_mm", binwidth=(2, 2))
sns.displot(data, x="bill_length_mm", y="bill_depth_mm", binwidth=(1, .5))
hue
ここに設定した列名のカテゴリに応じて色分けを行うことができる。
sns.displot(data, x="bill_length_mm", y="bill_depth_mm", hue="species")
col
各バーを重ねたり、積み重ねたりする代わりに、サブプロットとして別のグラフに分けて表示することも可能です。
sns.displot(data, x="flipper_length_mm", y="bill_depth_mm", col="species")
その他オプションによって、正規化することで観測を助ける方法もあります。
kdeplot:カーネル密度推定
kdeplot()の実装
密度曲線は、カーネル密度推定(Kernel Density Estimation: KDE)によってデータの確率密度関数を滑らかな曲線で描画します。
- カーネル関数を使って各データ点の周りに滑らかな曲線を重ね合わせ、密度曲線を推定します。
- ヒストグラムに比べてビン幅の設定に左右されない滑らかな分布を表せます。
- 等高線は密度の等比例で描画されます。
密度曲線は連続的なデータ分布をなめらかに可視化できる利点があります。
最小コード
sns.displot(data, x="bill_length_mm", y="bill_depth_mm", kind="kde")
様々なオプション
様々なオプションについては、histplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。
hue
ここに設定した列名のカテゴリに応じて色分けを行うことができる。
sns.displot(data, x="bill_length_mm", y="bill_depth_mm", kind="kde", hue="species")
まとめ
displotは、データの分布を可視化するための強力なツールであり、様々な種類のグラフを簡単に作成できることがわかりました。適切に使用することで、データの特徴や傾向を把握し、洞察を得ることができます。
コメント