Cuando los puntos del scatter se superponen, un hexbin cuenta por celdas hexagonales y revela la densidad. Se dibuja facilmente con 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) # Duracion de sesion (min)
amount = rng.normal(loc=2500, scale=700, size=1000) # Monto de compra (JPY)
fig, ax = plt.subplots(figsize=(6, 4))
hb = ax.hexbin(
amount,
session,
gridsize=18,
cmap="Blues",
mincnt=1,
)
ax.set_xlabel("Monto de compra (JPY)")
ax.set_ylabel("Duracion de sesion (min)")
ax.set_title("Duracion de sesion vs monto de compra (hexbin)")
cb = fig.colorbar(hb, ax=ax, shrink=0.85)
cb.set_label("Conteo")
fig.tight_layout()
plt.show()

Consejos de lectura #
- Los hexagonos mas oscuros indican mayor densidad y facilitan ver concentraciones.
- Define
mincntpara ocultar celdas con pocos puntos. - Con barra de color funciona como un heatmap cuantitativo.