Best Data Viz
Geospatial

Spike Map

Vertical spikes at locations sized by value, avoiding area distortion of bubble maps.

COVID-19 Cases by City

Spike height ∝ confirmed cases; range 9.5K (Nashville) to 85K (NYC) across 20 US metros

View data (20 rows)
Chart data table: COVID-19 Cases by City
XYCasesCity
30014585000New York
5519562000Los Angeles
22015048000Chicago
19523541000Houston
9021538000Phoenix
29515536000Philadelphia
28525035000Miami
25521533000Atlanta
32013030000Boston
18521528000Dallas
29016526000Washington DC
509022000Seattle
4017521000San Francisco
24014520000Detroit
19512519000Minneapolis
14017518000Denver
21518016000St. Louis
5011014000Portland
11016511000Salt Lake City
2302009500Nashville
Make a spike map with your data

Use a spike map when…

  • Dense point data where bubbles overlap
  • Population or case counts at locations

Avoid when…

  • Few data points
  • When bubble metaphor is more intuitive

Data it needs

PropertyValue
Min Rows3
Min Columns3
Column Types
stringnumbernumber
NotesThe two numeric columns are longitude and latitude; the third numeric column is the value driving spike height.

Visual anatomy

Marks
line (vertical)
Channels
heightposition (lat/lon)
Axes
geographic coordinates

Guiding principles

Consider instead

Common mistakes

  • Spikes overlapping

  • No scale reference (always include a 'spike of height X = Y units' legend)

History

Popularized during COVID-19 pandemic mapping by the NYT and other outlets (2020).

Accessibility notes

Render the underlying location/value rows as a sortable a11y data table beneath the map — spikes are inherently inaccessible to non-visual readers without it.

Related reading

Got data? Let's see what works.

Drop your CSV. You'll get a Spike Map plus four alternatives - ranked by which one actually fits your data best.