Hexbin プロットで密度を捉える

6.7.1

Hexbin プロットで密度を捉える

最終更新 2020-01-29 読了時間 1 分
まとめ
  • Hexbin プロットで大量の散布点を六角形ビンに集約し、密度分布を可視化する。
  • ax.hexbin でグリッドサイズとカラーマップを指定し、高密度領域を色で示す。
  • 散布図の点が重なりすぎる場合の代替として、2変量の分布把握に使う。

散布図に点が重なりすぎる場合は、六角形のビンでカウントする Hexbin プロットが便利です。matplotlib.hexbin で簡単に描けます。

import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(42)
session = rng.gamma(shape=3, scale=12, size=1000)   # 滞在時間(分)
amount = rng.normal(loc=2500, scale=700, size=1000) # 購入金額(円)

fig, ax = plt.subplots(figsize=(6, 4))
hb = ax.hexbin(
    amount,
    session,
    gridsize=18,
    cmap="Blues",
    mincnt=1,
)
ax.set_xlabel("購入金額(円)")
ax.set_ylabel("滞在時間(分)")
ax.set_title("滞在時間 × 購入金額の Hexbin")
cb = fig.colorbar(hb, ax=ax, shrink=0.85)
cb.set_label("件数")

fig.tight_layout()

plt.show()

matplotlib.hexbin で簡単に描けますの図

読み方のポイント #

  • 色が濃い六角形ほどデータが密集している領域。値の偏りを把握しやすい。
  • mincnt を指定すると、一定数以上データが入ったセルだけを描画できる。
  • カラーバーを付ければ件数を定量的に説明でき、ヒートマップとしても機能する。