A density contour plot (also known as a 2D KDE contour plot) displays the concentration of points in a 2D scatter plot using contour lines. The contours connect points of equal density, revealing clusters, patterns, and the overall bivariate distribution shape.

""" anyplot.ai
contour-density: Density Contour Plot
Library: matplotlib 3.10.9 | Python 3.13.13
Quality: 79/100 | Updated: 2026-05-16
"""
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
# Data - bivariate distribution with two clusters
np.random.seed(42)
# Cluster 1: Main cluster centered around (5, 5)
n1 = 300
x1 = np.random.normal(5, 1.5, n1)
y1 = np.random.normal(5, 1.2, n1)
# Cluster 2: Secondary cluster centered around (9, 8)
n2 = 150
x2 = np.random.normal(9, 0.8, n2)
y2 = np.random.normal(8, 1.0, n2)
# Combine clusters
x = np.concatenate([x1, x2])
y = np.concatenate([y1, y2])
# Compute 2D kernel density estimation
xmin, xmax = x.min() - 1, x.max() + 1
ymin, ymax = y.min() - 1, y.max() + 1
xx, yy = np.mgrid[xmin:xmax:200j, ymin:ymax:200j]
positions = np.vstack([xx.ravel(), yy.ravel()])
values = np.vstack([x, y])
kernel = stats.gaussian_kde(values)
density = np.reshape(kernel(positions).T, xx.shape)
# Plot
fig, ax = plt.subplots(figsize=(16, 9))
# Filled contours for visual impact
contourf = ax.contourf(xx, yy, density, levels=12, cmap="Blues", alpha=0.8)
# Contour lines for clarity
contour = ax.contour(xx, yy, density, levels=12, colors="#306998", linewidths=1.5, alpha=0.9)
# Scatter plot overlay for context (smaller, semi-transparent points)
ax.scatter(x, y, s=30, alpha=0.3, color="#FFD43B", edgecolors="#306998", linewidths=0.5, zorder=5)
# Colorbar
cbar = plt.colorbar(contourf, ax=ax, shrink=0.85, pad=0.02)
cbar.set_label("Density", fontsize=18)
cbar.ax.tick_params(labelsize=14)
# Labels and styling
ax.set_xlabel("X Variable", fontsize=20)
ax.set_ylabel("Y Variable", fontsize=20)
ax.set_title("contour-density · matplotlib · pyplots.ai", fontsize=24)
ax.tick_params(axis="both", labelsize=16)
ax.grid(True, alpha=0.3, linestyle="--")
plt.tight_layout()
plt.savefig("plot.png", dpi=300, bbox_inches="tight")
Part of Density Contour Plot on anyplot.ai.