Skip to content

Density Plot

2D kernel density estimation — shows where points concentrate.

When to Use

  • Visualizing point concentration (city events, species observations)
  • When scatter plots are too dense to read
  • Combining density visualization with point overlay

Example

from d3_bridge import DensityPlot

chart = DensityPlot(
    data=Observation.objects.values("longitude", "latitude"),
    x="longitude",
    y="latitude",
    bandwidth=25,
    title="Observation Density",
)

With Point Overlay

chart = DensityPlot(
    data=data,
    x="x", y="y",
    show_points=True,
    point_radius=2,
    point_opacity=0.3,
)

Bandwidth

Controls the smoothing. Lower = more detail, higher = smoother:

chart = DensityPlot(data=data, x="x", y="y", bandwidth=10)   # detailed
chart = DensityPlot(data=data, x="x", y="y", bandwidth=50)   # smooth

Parameters

Parameter Type Default Description
x str X-axis field
y str Y-axis field
bandwidth float 20 Kernel bandwidth (smoothing)
thresholds int 20 Number of density levels
color_scale str "sequential" Color scale type
grid bool True Show axes grid
show_points bool False Overlay scatter points
point_radius float 2 Point radius
point_opacity float 0.3 Point opacity
x_label str None X-axis label
y_label str None Y-axis label