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