Rugplotで個票を補助線として表示

入門

6.2.10

Rugplotで個票を補助線として表示

最終更新 2020-06-03 読了時間 1 分
まとめ
  • 個々のデータ位置を軸上の短い線で表示する。
  • sns.rugplotでKDEやヒストグラムを補足。
  • データの実際の分布位置を確認したいときに使う。

ヒストグラムや KDE に rugplot を重ねると、データの一つひとつがどこにあるかが分かりやすくなります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import seaborn as sns
import matplotlib.pyplot as plt

diamonds = sns.load_dataset("diamonds").sample(300, random_state=0)

fig, ax = plt.subplots(figsize=(6, 3.5))
sns.kdeplot(data=diamonds, x="price", ax=ax, color="#0ea5e9")
sns.rugplot(data=diamonds, x="price", ax=ax, color="#1d4ed8", alpha=0.4)

ax.set_xlabel("価格 ($)")
ax.set_ylabel("密度")
ax.set_title("ダイヤ価格の KDE + Rugplot")
ax.grid(alpha=0.2)

fig.tight_layout()

plt.show()

ヒストグラムや KDE に rugplot を重ねると、データの一つひとつがどこにあるかが分かりやすくなりますの図

読み方のポイント #

  • Rugplot の短い線が密集している箇所はデータが多い。
  • 色を薄くしておけば KDE の主役を奪わずに情報を補足できる。
  • 大量データで Rugplot を使うと描画負荷が高いので、サンプリングや height の調整を検討する。

いつ使うか #

  • 適している場面: 個々のデータ点の位置をヒストグラムや密度プロットの補助として表示したいとき。
  • 不向きな場面: データ点が多すぎると線が塗りつぶし状態になり、ほとんど情報を伝えられません。
  • 代替手段: 大量データの場合はヒストグラムや KDE 単体で十分に分布を把握できます。

よくある失敗パターン #

  • 線が密集して塗りつぶし状態: データ数が多いと rug の線が重なり、黒い帯になってしまいます。alpha を下げるかデータ量に応じて表示を間引いてください。
  • 他のプロットとの競合: 軸に近い領域にデータラベルや目盛りがあると rug と重なって読めなくなります。配置位置や余白を調整しましょう。