Free · No watermark · No signup · Data stays local

Animated map chart

Paste a spreadsheet of countries and watch the shading spread across the world as the years advance — legend, live top five, period counter. Export video or a PNG frame.

Paste your data

First column = country name or two-letter ISO code. Every column after it = one period, named in the header row. Same layout as the bar chart race, so a sheet works in both.

Or start from a sample — each loads its own labels, colours and pacing:

Sample figures are rounded public approximations for demonstration, not a data source.

🔒 Parsed and drawn in your browser — no tile server, nothing uploaded.

What people map

📊

Data journalism

Adoption, emissions, prices, cases, turnout — anything where the story is which places changed and when, rather than one country’s line on a chart.

🏢

Business by country

Revenue, customers, headcount or shipments by market, over quarters. Nothing is uploaded, so unpublished numbers are safe to paste.

🎓

Teaching

A century of population, empire, migration or industrialisation lands far better as a map filling in than as a table of numbers.

Getting your spreadsheet to match the map

The layout is the one your sheet already has: one row per country, one column per period, with the period names across the top. Paste it straight from Excel, Google Sheets or Numbers — tab, comma and semicolon separated data are all detected.

The part that actually goes wrong is naming. Sheets say “USA”, “U.S.A.”, “United States” and “US” for the same country, and a strict match would silently drop three rows and leave you wondering why North America is blank. Names are normalised for case and spacing, an alias table covers the usual suspects — UK, USA, Russia, South Korea, Czechia, UAE, DRC, Türkiye, Ivory Coast, Burma — and anything still unmatched is listed on screen rather than quietly discarded.

If a row will not match, use the two-letter ISO code: US, GB, DE, BR, IN. Those are unambiguous and always work. Blank cells inherit the previous period’s value, which suits a slow-moving indicator; type a zero where a genuine zero belongs.

Reading a choropleth honestly

A shaded map is the most persuasive and most misread chart there is, so a few things are worth knowing before you publish one.

  • Area is not weight. Big sparsely populated countries dominate the frame while small dense ones almost vanish. A map of totals mostly shows where the large countries are; per-capita or per-unit figures are usually the honest choice.
  • The scale is fixed across the whole animation here — the darkest colour means the same value in the first frame and the last. That is what makes change visible. A scale that re-fits each period would make everything look identical every year.
  • Missing is not zero. Countries with no data keep the neutral “no data” fill rather than the low end of the scale, so an absent country never reads as a country that scored badly.
  • Mercator inflates the far north. Greenland and Russia look enormous. It is the projection every web map uses and the one readers recognise, but keep it in mind before drawing conclusions from apparent size.

How it is drawn

The basemap is bundled Natural Earth vector data — public domain, no attribution required — so there is no tile server, no API key and no request leaving your browser. That is the practical reason this is usable with internal figures: revenue by market or headcount by country never goes anywhere.

Country outlines are held as paths in projected space and filled per frame, so a full world redraw is cheap enough to animate at 30 fps. A coarse outline loads first so the map appears immediately, and a finer one is fetched in the background and swapped in — which is why the borders sharpen a moment after the page settles.

Between periods the values are interpolated with an ease-in-out curve and the colour is interpolated through the scale, so a country moves smoothly through the ramp instead of stepping. Recording captures the canvas in real time, so a 12-second animation takes 12 seconds and the tab needs to stay visible while it runs.

Animated map chart FAQ

How should my data be laid out?

One row per country, one column per period. The first column holds the country name or its two-letter ISO code, and every column after it is a point in time named in the header row. Paste straight from Excel, Google Sheets or Numbers — tab, comma and semicolon separated data are all detected automatically.

Some of my countries did not appear. Why?

Their names did not match. Spreadsheets use many spellings for the same country, so an alias table covers the common ones — USA, UK, Russia, South Korea, Czechia, UAE, DRC, Türkiye, Ivory Coast, Burma — and any row that still fails is listed on screen rather than dropped silently. The reliable fix is to use the two-letter ISO code, such as US, GB, DE or BR.

Is the colour scale the same across the whole animation?

Yes, and deliberately. The scale is fixed to the minimum and maximum across every period, so the darkest colour means the same value in the first frame as in the last. A scale that re-fitted itself each period would make every year look the same and hide exactly the change you are trying to show.

What happens to countries with no data?

They keep a neutral “no data” fill rather than the bottom of the colour scale, so an absent country never reads as one that scored zero. That distinction matters: on most indicators, missing data and a low value mean very different things.

Is my data uploaded anywhere?

No. The map geometry is bundled with the page, parsing and drawing happen in your browser, and the video is recorded from a canvas. Nothing reaches a server, which is what makes this usable with unpublished revenue, headcount or internal metrics. Your data is kept in this browser’s local storage so it is still there next time.

Can I zoom into one region?

Yes — pick World, Europe, Africa, Asia, Americas or Oceania. Regional views are much more readable when your data only covers one continent, because a world frame would leave most of the picture in the neutral no-data colour.

How long does the export take?

The same as the video length, because the browser records the canvas in real time — a 12-second animation takes 12 seconds. Keep the tab visible while it runs, since browsers throttle background tabs; the tool tells you if that happened rather than handing you a choppy file without comment.

Can I get a still image instead?

Yes. The PNG button exports the current frame at full resolution, which is what you want for a report, a slide or a post where a video is awkward. Scrub the preview to the moment you want first.