PlotSet LogoPlotSet

How to Create a Choropleth Map

A step by step walkthrough for turning a spreadsheet of place names and numbers into a published choropleth map in PlotSet, from matching region names to exporting or embedding the finished map.

About 8 minutes

Place names and numbers go in; how to create a choropleth map in PlotSet comes out the other side as a published, interactive map you can share or embed. You will end up with regions shaded by your own values, a color scale that actually fits the data, and a legend that tells the reader what the shading means: not a screenshot of somebody else's country list with your numbers dropped in.

If your spreadsheet already uses the exact place names PlotSet's map template recognizes, this takes about eight minutes. Add another ten if you are starting from a report full of abbreviations, ISO codes or older country names: matching those to the template's region list is the part that eats time, not the styling. Budget the eight minutes below and treat the rest as a buffer.

The data you need

One row per region, two columns: the place name first, matching how the template labels its regions, and the number second. One header row, no totals row.

Sample CSV
CountryCO2 per Capita (tonnes)
United States14.2
Germany8.1
China7.6
Brazil2.2
India1.9
Nigeria0.6
Notes

Use the same place names the map template uses, not abbreviations or codes. "USA" or "US" often will not match a region labeled "United States", and a mismatch drops that row's shading instead of throwing an error.

One number per region. If you want two years side by side, that calls for two separate maps or a time slider, not two columns crammed into one choropleth.

Leave regions you have no data for out of the sheet entirely, rather than filling them with a zero. PlotSet gives any region with no matching row a distinct no-data color; a zero would shade it like a real low value instead.

Delete any totals or world-aggregate row before uploading. A "Global" or "World" row has no matching region on the map, so it gets ignored, but it is cleaner to remove it at the source than to rely on that.

The steps

The exact click path in PlotSet, from a blank template to a finished chart.

  1. 01

    Open the Choropleth Map template

    From the PlotSet dashboard, start a new project and choose the Choropleth Map template. It loads with a world map and sample data already in place, so you can see the place-name and value columns the template expects before swapping in your own file.

    PlotSet's template picker: chart categories listed down the left, the Bar Charts grid open, and the Bar Chart template card showing its Select button.
    Every guide starts here. Pick the category, then the template: it is the same grid whichever chart type you are after.
  2. 02

    Pick the map that matches your data's geography

    Choose world countries, or one of the state, province and county maps in the template library if your rows sit below the country level. Settling this first avoids a second round of place-name matching once you realize the template you started with is the wrong scale.

  3. 03

    Shape your sheet into a place column and a value column

    Put the region name in the first column and its number in the second, one row per region. Use standard names rather than abbreviations, ISO codes or postal codes: whatever format the map template's region list expects.

  4. 04

    Upload the file, or connect a sheet

    Use the data panel to import a CSV or .xlsx file, paste rows directly from a spreadsheet, or connect a Google Sheet so the map can pick up updated figures later without a re-upload.

    The PlotSet editor's data view: a spreadsheet grid with Name, Value and Region columns filled with Canadian province figures, beside the Data panel offering CSV upload, Magic Import and Google Sheet sync.
    The data view, shown here on a bar chart project. Upload a CSV, lift the numbers out of an image with Magic Import, or sync a Google Sheet. The panel is identical for every chart type.
  5. 05

    Check the unmatched-region list

    After upload, confirm which column PlotSet read as the place name and which as the value. Then look at the unmatched list it shows: any row whose name did not find a region on the map lands there, and it is almost always a spelling or naming difference you can fix in seconds.

    The PlotSet data panel with the column bindings highlighted: Label/time mapped to column A, Values to column B and Filter/color to column C, with the Auto Binding button below.
    Bindings decide which column becomes the label, which supplies the values and which drives the colour. Auto Binding guesses them from your headers, so check it rather than assume it.
  6. 06

    Choose a color scale and set the no-data color

    Use a single-hue sequential scale, light to dark, for ordinary low-to-high figures, and switch to a diverging scale only when your numbers have a real midpoint, such as zero or a national average. Set a distinct gray for regions with no matching data so missing never reads as low.

    The PlotSet editor on the Preview tab: a finished Choropleth Map on the canvas, with the settings panel outlined in red down the right-hand side.
    The Preview tab for a Choropleth Map. Every styling control lives in the outlined panel, each on its own tab: appearance, header, footer and the options specific to this chart type.
  7. 07

    Add a legend and a title that names the measure

    Turn on the legend so the shading has a key, and title the map with what is being measured, "CO2 emissions per capita" rather than just "Map". A reader should know what the color means before they hover over a single region.

  8. 08

    Publish, embed or export the map

    Publish for a live, interactive map with hover tooltips and a shareable link, grab the embed code to drop it into a page, or export a PNG, SVG or PDF if you need a static image for a deck or a report.

Start from the Choropleth Map template with sample data already loaded, then swap in your own.

Open the template

Publish, embed or export it

The last stretch is the same for every chart type: Share turns the chart into a live public link and an embed code, Export writes it out as a static file.

Share: public link and embed code

Activating the embed code and public link publishes the chart. The link is safe to send to anyone, and the embed code drops into any page as an iframe that keeps the hover tooltips and the interactivity. Edit the chart later and hit Recreate to push those changes out to both.

The PlotSet editor toolbar with the Share button highlighted, sitting next to the Export button.
Share is how a finished chart becomes a public link and an embed code.
PlotSet's Share dialog: the toggle activating the embed code and public link, buttons for Link, Embed, Facebook, Reddit, Twitter, LinkedIn and Email, and the public chart link with a Copy button.
Switch on the embed code and public link, then copy the link or take the iframe. Recreate pushes later edits out to everyone already holding it.

Export: SVG, PNG or JPG

Export writes a static copy at whatever size you need. SVG stays sharp at any scale and can still be edited in a design tool; PNG and JPG are the safe choices for slides and documents. The scale multiplier is what gets you a crisp image on a retina screen.

The PlotSet editor toolbar with the Export button highlighted.
Export is the route to a static file for a slide or a report.
PlotSet's Export chart dialog: a 2x scale selector, width and height fields set to 1000 by 600, and the open format menu listing SVG, PNG and JPG.
SVG stays sharp at any size and stays editable in a design tool; PNG and JPG are the safe picks for a deck. Set the scale before you export so the image is crisp on a retina screen.

Styling tips for a Choropleth Map

Match names to the template, not to each other

PlotSet's map templates use a fixed list of region names per geography. Before uploading, check your trickier entries (small countries, disputed territories, recently renamed regions) against the template's own list rather than assuming your source spreadsheet's spelling counts as standard.

Shade rates, not raw counts

Land area does not track population, so a map colored by total count usually just redraws where people live. Convert to a rate, share or per-capita figure before shading, and save the raw totals for a bar chart instead.

Keep one level of geography per map

A single choropleth should shade one scale at a time: country, or state, not both mixed together. If you need a national overview and state-level detail, build two maps rather than combining region sizes on one, which breaks the color scale's comparison.

Label the no-data color in the legend

A gray swatch with no explanation leaves the reader guessing whether it means zero or unknown. Label it "No data" directly in the legend so the distinction is stated, not inferred from context.

Common mistakes when making a Choropleth Map

Regions are missing shading even though they're in your sheet

This is almost always a name mismatch: your sheet says "USA" or "Ivory Coast" while the map template expects "United States" or "Côte d'Ivoire". Open the unmatched-rows list PlotSet shows after upload and correct the spelling for each name it flags, then re-upload.

The map looks like a population map, not your actual metric

Check whether you uploaded a raw count instead of a rate. Totals shade almost any map the same way a population map would, since bigger, denser regions post bigger numbers regardless of what you meant to measure. Divide by population or another sensible denominator and re-upload.

Missing regions look identical to low values

If every unshaded region sits at the same pale end of the scale as your lowest real values, the no-data color was probably never set. Open the color settings, assign a distinct gray to no-data, and leave regions you have no figure for out of the sheet entirely.

Learn more about the Choropleth Map

Not sure the Choropleth Map is the right choice? See what it is, when to use it and when not to.

About the Choropleth Map

Choropleth Map: common questions

One column of place names and one column of numbers, with one row per region and one header row. The place names need to match the names the map template uses, standard country or state names rather than abbreviations or ISO codes, or that row's region will not get shaded.

Make your Choropleth Map now

Free to start with 300+ templates. No credit card required.