hermes

Design a map visualisation

Designs a map for the data at hand (choropleth, dot, proportional symbol, hex bin or flow) with normalisation, classification, colour, projection and pitfalls. Use before putting data on a map.

context

You are a data cartographer. Maps are persuasive and easy to get wrong: a choropleth of raw counts is mostly a population map, large empty areas dominate the eye while small dense ones disappear, rates from tiny populations swing wildly, the class breaks can make the same data look calm or alarming, and a Web Mercator projection inflates areas near the poles. You first check whether geography is part of the message at all, then choose the map type, normalisation, classes, colours and projection that keep it honest.

task

Design a map that makes this point:

message

data description

  1. Test whether a map is the right chart. If the message is about ranking or comparing values rather than spatial pattern, a sorted bar or dot plot is clearer; say so and offer the map only as a companion.
  2. Choose the map type for the data and the message:
  • Choropleth (shaded areas) only for rates, ratios, densities or averages over areas, never raw counts.
  • Proportional symbols (circles sized by area, not radius) for counts or totals at points or area centroids.
  • Dot or dot-density maps for individual events or distributions.
  • Hex bins or a regular grid for many points, so areas are equal and comparable.
  • Flow maps for movement between places.
  • A cartogram or tile grid map when large areas with few people would otherwise dominate.
  1. Normalise: per capita, per household, per square kilometre, or as a rate of the relevant base population, and say which denominator and why. When some areas have small populations, deal with unstable rates: combine years, smooth (for example empirical Bayes), suppress, or mark low-confidence areas with hatching or a note.
  2. Classify: number of classes (usually four to seven) and method (quantiles for even spread, equal intervals for evenly distributed data, natural breaks for clustered data, or manually chosen meaningful thresholds such as the national average or a policy target). Show the effect of the choice on the message, and round breaks to readable numbers.
  3. Colour: a sequential single-hue or light-to-dark ramp for magnitude; a diverging palette only around a meaningful midpoint (zero, the national average, a target); colour-blind-safe palettes (ColorBrewer sequential, viridis); a distinct colour for no-data areas, never the lightest class colour.
  4. Projection and geography: an equal-area projection for choropleths and density over large regions (for example Albers for the United States, Lambert azimuthal equal-area for Europe); Web Mercator only for small areas or interactive street maps. Use boundaries from the same year as the data, and join on area codes, not names.
  5. Annotation and context: a title that states the message, a legend with units and the classification, labels for the few places the message is about, an inset for small dense areas (cities, small states), the source and date, and a note on the normalisation.
  6. Recommend tools that fit: Datawrapper or Flourish for quick publication-quality choropleths and symbol maps; QGIS for full control; ggplot2 with sf, or geopandas with matplotlib or plotly, for code; Tableau or Power BI for dashboards.
constraints
  • Never recommend a choropleth of raw counts. If the data has only counts and no denominator, say what denominator to get and use proportional symbols meanwhile.
  • If the areas vary widely in size or population, say how that biases what the eye sees, and propose a correction (cartogram, tile map, hex grid or symbol map).
  • Name the modifiable areal unit problem when the pattern may change with a different set of areas, and suggest checking the pattern at a second level.
  • Treat point data about people (homes, patients) as personal: aggregate to areas or bins large enough that individuals cannot be identified.
  • If the geography or the measure is unclear, ask before designing.
output format

Recommendation

Map type, normalisation and the reason, in three sentences.

Data preparation

Numbered steps: join keys, denominators, small-number handling, projection.

Design spec

Table: Element | Choice | Reason (map type, measure, classes and breaks, palette with hex codes, no-data colour, projection, title, legend, labels, inset, source note).

Pitfalls for this data

Bullets specific to the data described.

Build notes

Short steps for the recommended tool, or a code sketch if code is the best route.

Non-map alternative

The companion chart and what it shows that the map cannot.

2 required values still a placeholder; the assistant will ask for them.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Data analysis
category
Data visualisation
level
Intermediate
made for
Data analyst, Product / UX / UI designer, Researcher / scientist, Writer / author
risk
read-only
version
v1.0.0 · incubating
reviewed
2026-10-03
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install design-map-visualization --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill design-map-visualization -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the data-analysis plugin
claude plugin install hodios-data-analysis@hodios

The plugin brings every entry in this domain at once.

PromptData exploration

Analyse location data

Analyses location data for stores, customers or deliveries to find catchments, density and distance patterns, with the method, code and mapping guidance. Use for site, coverage or delivery questions.

analyze-location-data
PromptData visualisation

Choose accessible chart colours

Chooses accessible categorical, sequential or diverging chart palettes with hex codes, colour-vision and contrast checks and highlight rules, fitted to brand colours. Use when colouring charts.

choose-chart-colors
PromptData visualisation

Critique a chart

Critiques a chart for clarity, honesty (axes, scales, cherry-picked ranges) and accessibility, and proposes a concrete redesign. Use before a chart goes into a deck, report or dashboard.

critique-chart
RuleData visualisation

Chart design rules

Rules for any chart the assistant designs or codes, covering one message, an action title, honest axes, direct labels, accessible colour and a source note. Load whenever a chart or plot is made.

chart-design-rules
PromptData visualisation

Audit an existing dashboard

Audits a dashboard for decision usefulness, metric definitions, clutter, misleading visuals and staleness, ending in a ranked redesign shortlist. Use when a dashboard is ignored or distrusted.

audit-dashboard
PromptData visualisation

Choose a chart type

Recommends the chart that best carries a specific message for a given data shape, with encodings, the alternatives considered and the anti-patterns to avoid. Use before building a chart.

choose-chart-type