จับความหนาแน่นด้วยเฮ็กซ์บินพลอต

Visualize

จับความหนาแน่นด้วยเฮ็กซ์บินพลอต

เมื่อจุดในสแคตเตอร์ทับกันมาก เฮ็กซ์บินพลอตจะนับจำนวนในช่องหกเหลี่ยมเพื่อให้เห็นความหนาแน่นชัดขึ้น วาดได้ง่ายด้วย 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) # มูลค่าการซื้อ (JPY)

fig, ax = plt.subplots(figsize=(6, 4))
hb = ax.hexbin(
    amount,
    session,
    gridsize=18,
    cmap="Blues",
    mincnt=1,
)
ax.set_xlabel("มูลค่าการซื้อ (JPY)")
ax.set_ylabel("เวลาการใช้งาน (นาที)")
ax.set_title("เวลาการใช้งาน x มูลค่าการซื้อ (hexbin)")
cb = fig.colorbar(hb, ax=ax, shrink=0.85)
cb.set_label("จำนวน")

fig.tight_layout()

plt.show()

เฮ็กซ์บินพลอตช่วยให้เห็นพื้นที่หนาแน่นได้ทันที

อ่านอย่างไร #

  • สีเข้มหมายถึงความหนาแน่นสูง ช่วยมองเห็นการกระจุกตัวได้ดี
  • ตั้ง mincnt เพื่อซ่อนช่องที่มีจำนวนน้อย
  • เพิ่มแถบสีเพื่อให้ตีความเป็นตัวเลขได้เหมือนฮีตแมป