This entry is part of the Chart Index, the reference library for the Chart Design Field Guide.

A Voronoi diagram partitions a plane into regions based on distance to a set of seed points. Every location in the plane belongs to the region of its nearest seed; the boundaries between regions are equidistant from neighbouring seeds. The form is beautiful — a quilt of polygons whose shapes are entirely determined by point positions — and surprisingly useful in visualisation, both as a structural form (showing service-area coverage, nearest-neighbour relationships) and as an interactive convenience (making sparse scatter plots easier to mouse over).

It is the chart most students encounter first as a fun geometric exercise and then never use professionally. In visualisation, it has three real applications: as a map of service coverage; as a layout algorithm for crowded points; and as an invisible hit-target overlay that makes interactive scatter plots more usable.

What it is

A Voronoi diagram of a set of points is a partition of the plane into convex polygons, one per seed point, where each polygon contains the set of locations closer to its seed than to any other seed. The boundaries are perpendicular bisectors of pairs of adjacent seeds. Variants include the weighted Voronoi (some seeds have larger regions) and the Voronoi treemap (Voronoi cells used as treemap rectangles).

Service locations and nearest-neighbour regionsEight locations · Voronoi catchment polygons and Delaunay links

Twenty-eight cafes plotted on a map, with the Voronoi tessellation showing each cafe's nearest-customer catchment area. The size and shape of each polygon reveals which cafes serve large regions (suburban locations with few competitors) and which serve small ones (city locations clustered together). The form makes spatial competition visible without explicit annotation.

When to use it

Voronoi diagrams are the right choice when:

  • The data is point locations and the question is "what is the nearest-neighbour catchment of each?"
  • You are showing coverage or service area for facilities, towers, stations, sensors.
  • You need to make a sparse scatter plot interactive — Voronoi cells become hit targets.
  • You want a visually-striking spatial form for editorial display.
  • The points are distributed in a 2D plane with no overlap.

When not to use it

  • No spatial / locational meaning. Voronoi diagrams require positions in 2D space; abstract data with no spatial interpretation does not benefit.
  • Many points (1,000+). The diagram becomes a quilt of tiny cells; individual polygons are unreadable.
  • Hierarchical data. A treemap is the right form; Voronoi treemaps are aesthetic but lose the rectangular structure that makes treemaps comparable.
  • As a primary chart for executives. The form is unfamiliar to non-technical audiences; pair with a more conventional chart.

Design principles

Show the seed points

A Voronoi diagram without its seeds is geometrically complete but informationally orphaned. Always render the seeds — small dots — on top of the polygons so the reader can connect the partition to the data.

Use a quiet palette

Voronoi polygons are visually busy by nature. Use a desaturated categorical palette or a single hue with varying lightness derived from a domain attribute (catchment population, customer count). Saturated colours turn the partition into a quilt.

Annotate the dominant cells

The largest polygons (or smallest, depending on the question) usually carry the story. Label them with their seed's name and a relevant metric (catchment area in km², customer count).

Voronoi tessellation — seeds, polygons, and adjacency
12345678
Each polygon contains the points closer to its seed than to any other. Adjacent polygons share an edge that is equidistant from their two seeds.

Pair with a relevant base map

For real-world spatial data, place the Voronoi cells over a faint base map showing roads, water, or boundaries. The partition gains context — why the cells have these shapes (rivers, mountain ranges, missing data regions).

Consider weighted Voronoi for unequal seeds

If the seeds have different weights (a flagship store vs. a small kiosk), the standard Voronoi gives them equal influence. Multiplicatively weighted Voronoi adjusts cell sizes by weight, producing a more realistic catchment model.

Use Voronoi treemaps cautiously

Voronoi treemaps replace rectangular treemap cells with Voronoi cells. They are striking and accommodate awkward bounding shapes, but they sacrifice the rectangular alignment that makes treemap area comparison easier. Use only when the visual impact justifies the loss.

Document the distance metric

Standard Voronoi uses Euclidean distance — the straight-line distance. Real-world catchments may need Manhattan (grid-aligned) or travel-time distance. State the metric; the cells will look different.

Anatomy

The Composition of a Voronoi Diagram
ABCDEFGSEED POINTCATCHMENT POLYGON (NEAREST-NEIGHBOUR REGION)
An anatomical guide

A Voronoi diagram's anatomy is the seeds + polygons + labels. The form's mathematical elegance carries the visual weight; the design choices are colour, label placement, and base map context.

  • Delaunay triangulation — the dual graph of Voronoi; triangles connecting neighbouring seeds. Often shown alongside or instead.
  • Choropleth — region-based shading; different question (existing boundaries vs. computed catchments).
  • Hexbin / square grid — fixed cells regardless of point positions.
  • Voronoi treemap — hierarchical part-to-whole with Voronoi cells.
  • Buffer zones — fixed-radius regions around each point; the simpler alternative.

Reading list

  • Aurenhammer, F. (1991). Voronoi Diagrams — A Survey of a Fundamental Geometric Data Structure. The mathematical foundation.
  • Okabe, A., Boots, B., Sugihara, K. & Chiu, S. (2000). Spatial Tessellations: Concepts and Applications of Voronoi Diagrams. The application-focused reference.
  • Mike Bostock (2014). D3 Voronoi examples. The web-native implementation patterns.