Cartography & Map Design¶
Goal: Design maps people want to look at. Master the design principles that turn a layer into a publication-quality map.
What you'll learn
- The 6 essential map elements
- Color theory for maps
- Visual hierarchy and figure-ground
- Common cartographic mistakes (and fixes)
What makes a map good?¶
A great map answers a question fast. Within 5 seconds, a viewer should know:
- What the map is about (title)
- Where it is (basemap, scale)
- What the colors / symbols mean (legend)
- What the takeaway is (visual hierarchy)
If a viewer has to study it for 30 seconds, the map failed.
The 6 essential elements¶
-
Title
Frames the question. "Median household income, Atlanta MSA, 2022" — not just "Income map".
-
Legend
Explains every color and symbol. Match the data type (continuous, categorical, ordinal).
-
Scale bar
Always include for printed/PDF maps. Use real units (miles, km).
-
North arrow
Especially when the map isn't north-up.
-
Source & date
"Data: US Census 2022 ACS 5-year. Map: J. Doe, 2026."
-
Projection note
Small, in the corner. "Projection: NAD83 / Georgia State Plane West (EPSG:2240)."
Color theory for maps¶
Choose the color scheme to match the data¶
flowchart TD
D[Your data] --> Q1{Type?}
Q1 -->|Categorical<br/>Forest, Water, Urban| Cat[Qualitative palette<br/>distinct colors]
Q1 -->|Sequential<br/>low → high income| Seq[Sequential palette<br/>light → dark of one hue]
Q1 -->|Diverging<br/>negative ↔ positive| Div[Diverging palette<br/>two hues meeting at neutral]
classDef root fill:#4338ca,stroke:#312e81,color:#fff
class D root
classDef q fill:#fef3c7,stroke:#f59e0b,color:#92400e
class Q1 q
classDef ans fill:#dcfce7,stroke:#10b981,color:#065f46
class Cat,Seq,Div ans | Data type | Use | Example palette |
|---|---|---|
| Categorical | Distinct hues, equal weight | Set1, Set2 (ColorBrewer) |
| Sequential | Light → dark of one hue | Blues, YlGnBu |
| Diverging | Two hues meeting at neutral | RdBu, PuOr |
Use ColorBrewer
colorbrewer2.org is the gold standard. Built into ArcGIS Pro symbology.
Accessibility¶
- Always check colorblind-safe palettes (ColorBrewer marks them).
- Use labels in addition to color when possible.
- Avoid pure red/green contrast.
Visual hierarchy¶
The viewer should look at the most important element first. Build hierarchy with:
| Tool | Effect |
|---|---|
| Size | Bigger = more important |
| Color saturation | Saturated = foreground; muted = background |
| Contrast | Dark on light (or vice versa) |
| Position | Centered, top, or rule-of-thirds |
The basemap should fade. Your data should pop.
Figure-ground¶
The "subject" of the map should clearly stand apart from its surroundings (the "ground").
- Mute the basemap (gray, low saturation)
- Add a subtle outline / drop shadow to study area
- Crop tightly to the area of interest
Typography¶
Title: Bold, sans-serif, 18–24pt
Subtitle: Regular, italic, 12–14pt
Legend: Sans-serif, 9–11pt
Labels: Match the feature type (italic for water, bold for cities)
Sources: Smallest, 7–8pt
Font pairings that work
- Inter + JetBrains Mono
- Source Sans Pro + Source Serif Pro
- Open Sans alone (one font, two weights)
Use 1–2 fonts max. Three or more = visual chaos.
Choropleth design¶
A choropleth = polygons colored by a value.
Always normalize
Showing raw counts by polygon is misleading because polygons have different sizes/populations.
Always normalize by:
- Population (rate per 1,000 people)
- Area (density per km²)
- Total (percent of category)
Classification methods¶
| Method | When |
|---|---|
| Equal interval | Easy to read, but vulnerable to outliers |
| Quantile | Equal number of features per class — good for skewed data |
| Natural breaks (Jenks) | Minimizes within-class variance — Esri default |
| Manual | When you have meaningful thresholds (poverty line, elevation contours) |
→ Walkthrough: Choropleth Map tutorial
Common mistakes¶
Cartography sins
- 🚫 Using the rainbow ramp for sequential data
- 🚫 Default basemaps that overpower the data
- 🚫 No projection note (or worse, Web Mercator for area analysis)
- 🚫 Tiny, unreadable legend
- 🚫 Showing raw counts in a choropleth (normalize!)
- 🚫 Five different fonts
- 🚫 No source / date
Inspiration¶
- r/MapPorn — beautiful and creative
- Esri Maps We Love — professional examples
- Daniel Huffman — somethingaboutmaps.com — great cartographer's blog
Practice¶
Redesign challenge
- Find a default ArcGIS Pro choropleth (any).
- Identify the 3 worst design choices.
- Fix them: better palette, fewer classes, normalized values, better hierarchy.
- Export to PDF at 300 dpi.
- Show before / after side-by-side.
That's a portfolio piece in itself.
Next up¶
→ Spatial Analysis — beyond geoprocessing into pattern detection.