from pyhs3.data import UnbinnedData
from pyhs3.axes import UnbinnedAxis

# Create 2D unbinned data points
entries = [
    [0.5, 0.8], [1.2, 1.5], [1.8, 0.3],
    [2.3, 2.7], [0.9, 1.2], [1.5, 2.1]
]

data = UnbinnedData(
    name="2d_events",
    type="unbinned",
    entries=entries,
    axes=[
        UnbinnedAxis(name="x", min=0.0, max=3.0),
        UnbinnedAxis(name="y", min=0.0, max=3.0),
    ]
)

# Convert to 2D histogram
h = data.to_hist(nbins=6)
plt.pcolormesh(*h.axes.edges.T, h.values().T, cmap="plasma")
plt.colorbar(label="Events")
plt.xlabel("x")
plt.ylabel("y")
plt.title("2D Unbinned Data Binned")