リッジラインプロット

中級

6.2.3

リッジラインプロット

最終更新 2020-02-26 読了時間 1 分
まとめ
  • カテゴリ別の分布形状を重ねて比較する。
  • sns.violinplot を横向きに使いリッジライン風に描画。
  • グループ間の分布の違いを一覧したいときに使う。

カテゴリごとの分布を重ねて表示するリッジラインプロットは、季節性やクラス間の違いを把握するのに便利です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import seaborn as sns
import matplotlib.pyplot as plt

mpg = sns.load_dataset("mpg").dropna(subset=["mpg", "origin"])

sns.set_theme(style="white")
fig, ax = plt.subplots(figsize=(6, 5))
sns.violinplot(
    data=mpg,
    x="mpg",
    y="origin",
    scale="width",
    inner=None,
    palette="Set2",
    ax=ax,
)
ax.set_xlabel("燃費 (MPG)")
ax.set_ylabel("生産地域")
ax.set_title("地域別燃費のリッジライン風プロット")
ax.grid(axis="x", alpha=0.2)

fig.tight_layout()

plt.show()

カテゴリごとの分布を重ねて表示するリッジラインプロットは、季節性やクラス間の違いを把握するのに便利ですの図

読み方のポイント #

  • 各カテゴリの分布形状と中央値の位置を同時に把握できる。
  • 重なり具合からカテゴリ間の類似性が分かる。必要に応じて透明度を調整する。
  • 実際には joypy など専用ライブラリを使うと純粋なリッジラインを描ける。ここでは violinplot を活用して近似している。

いつ使うか #

  • 適している場面: 多数のカテゴリの分布を縦に並べて一覧したいとき。時系列の分布変化の把握にも適しています。
  • 不向きな場面: 密度が重なるため個別の値を正確に読み取りたい場合には不向きです。
  • 代替手段: カテゴリ数が少なければバイオリンプロットの方が比較しやすくなります。

よくある失敗パターン #

  • 密度の重なりによる情報の隠蔽: 前の行の密度曲線が後ろの行を隠してしまうことがあります。重なり量(overlap)を適切に調整してください。
  • カテゴリの並び順が無意味: 順序に意味のない並びだとパターンが見えにくくなります。中央値や時系列順など意味のある順序で並べましょう。