Skip to main content

Spatial data

How to Make a Choropleth Map (Free, No GIS Software)

A choropleth map shades each area (a country, county, district, or tract) by the value of a variable, so a pattern you could never see in a spreadsheet becomes obvious at a glance. You do not need desktop GIS software or a login to make one. This guide walks through the whole workflow in a free browser tool, Groundtruth, from loading boundaries to exporting a figure, and explains the choices (classification, colour, normalisation) that decide whether your map tells the truth.

9 min read · Updated August 24, 2026

What a choropleth map is, and when to use one

A choropleth map colours predefined regions by a data value: darker or more saturated areas carry higher values. It is the right choice when your data is already aggregated to areal units (per county, per country, per ward) and the variable is a rate, ratio, or density rather than a raw count. Election results by state, poverty rate by district, rainfall by region, and yield per hectare by county are all natural choropleths.

One rule that prevents most bad maps

Shade rates and densities, not raw totals. A map of total population will always just show where the big areas are. A map of people per square kilometre shows where people actually cluster. If you only have counts, divide by area or by population first.

What you need: boundaries plus a value

Every choropleth is two pieces joined together. The first is the geometry: the shapes of your regions, as a shapefile or a GeoJSON file. The second is the attribute: the number you want to map for each region. Sometimes both live in the same file (a shapefile whose attribute table already has your column). Often the shapes come from one place and the numbers come from a spreadsheet, and you join them on a shared key such as a region name or code.

  • Boundaries are free and global. Natural Earth has countries and states with data already attached. geoBoundaries and GADM go down to districts and wards. Your national statistics office usually publishes official admin boundaries.
  • Values come from a census, a survey, an administrative record, or your own fieldwork, usually as a CSV or spreadsheet with one row per region.

Step by step

Step 1Load the boundaries

Open Groundtruth and drag a .zip shapefile or a .geojson onto the map. It parses the file in your browser, so nothing is uploaded to a server and your data stays private.

Step 2Attach your data if needed

If the numbers are in a spreadsheet, use Join a spreadsheet (CSV) and match a boundary field to a CSV column (for example region name to region name). Numeric columns become mappable variables.

Step 3Pick the variable

Choose the field to map. The map colours instantly. If a value looks wrong, you can edit it in place in the Inspect panel.

Step 4Choose a classification

Switch between quantile, equal interval, natural breaks (Jenks), and standard deviation. This choice changes the story, so it is worth understanding (below).

Step 5Read and check

Open the attribute table to sort and filter the underlying numbers, and use Analyze to correlate two variables or test whether the pattern is spatially clustered.

Step 6Export the figure

Draft a caption, then export the map as SVG or PNG for a paper or slide, or export GeoJSON to carry the joined data onward. Save project keeps the whole session, edits and all, for later.

Classification: the choice that makes or breaks the map

Classification decides how continuous values are grouped into colour classes. The same data can look completely different under different schemes, so pick deliberately rather than accepting a default.

  • Quantile puts an equal number of regions in each class. Every colour is used and the map looks balanced, but class widths vary, so two regions in different classes can be almost identical.
  • Equal interval splits the value range into equal-width bands. It is honest about magnitude and great for evenly spread data, but with skewed data most regions pile into one or two classes.
  • Natural breaks (Jenks) finds groupings that minimise variation within each class and maximise it between classes. It usually reads best on real, lumpy data such as population or income.
  • Standard deviation shades by distance from the mean, which is ideal when the story is who is above or below average rather than the raw level.

A good habit is to try quantile and Jenks side by side. If your conclusion flips between them, your classes, not your data, are doing the talking, and you should say so. For a deeper treatment, see the guide on choropleth classification methods.

Colour, without misleading

  • Use a sequential ramp (light to dark in one hue) for data that runs low to high.
  • Use a diverging ramp (two hues meeting at a neutral middle) only when there is a meaningful midpoint, such as a change, an anomaly, or a value above and below average.
  • Keep the number of classes to about five. More classes look precise but exceed what the eye can distinguish.
  • Check that your ramp still reads for colour-blind viewers. Sequential ramps in a single hue are the safest.

Common mistakes to avoid

  • Mapping counts instead of rates, so the map just shows area or population size.
  • Letting an outlier stretch the whole colour scale so every other region looks the same.
  • Comparing two maps made with different classifications or class breaks.
  • Reporting area or distance from a map in a projection that distorts them. For measurement, use a tool that computes real geodesic area and distance rather than raw coordinate units.

None of this requires a GIS licence or an install. Everything above runs in a browser tab. When you are ready, open Groundtruth and drop in a file.

Frequently asked questions

How do I make a choropleth map for free?
Open a browser tool such as Groundtruth, drag in a shapefile or GeoJSON of your regions, join a spreadsheet of values if the numbers are separate, choose the variable and a classification, and export the map as SVG or PNG. No install or sign-up is needed and the data stays in your browser.
What is the difference between a choropleth map and a heat map?
A choropleth shades predefined areas (counties, countries) by a value. A heat map shows the density of point events as a smooth surface. Use a choropleth for data already aggregated to regions, and a heat map for raw point locations.
Should I map totals or rates?
Map rates, ratios, or densities. Raw totals in a choropleth mostly reveal which areas are large or populous. Dividing by area or by population turns a count into a comparable rate.
Which classification method should I use?
Quantile balances the colours, equal interval is honest about magnitude, natural breaks (Jenks) usually reads best on skewed real-world data, and standard deviation highlights above and below average. Try quantile and Jenks together and report the scheme you chose.
Can I make a choropleth without desktop GIS software?
Yes. Browser tools parse shapefiles and GeoJSON locally and render the map client-side, so you can classify, edit, analyse, and export without QGIS or ArcGIS installed.

Bring this into your own research

Research Woven connects your sources, highlights, notes, evidence, and manuscript in one maintained chain, so provenance and citations are computed for you rather than pieced together by hand.

Open Research Woven

Keep reading