# Map of Europe by NUTS 1 region, one number per region

A chartlink template (choropleth). Page: https://chartlink.app/maps/europe/nuts-1 · Example image: https://chartlink.app/a/ast_pcUGonWAuhzKq7wrfQyn3.png?v=16&w=1200 · Template id: `ast_pcUGonWAuhzKq7wrfQyn3`

Also answers: Europe map by NUTS 1 region · European regions map · map of Europe by major region · NUTS1 choropleth · EU regions coloured by a value

## About

Data: one row per NUTS 1 region with its NUTS 2024 code (DE2 for Bavaria, FR1 for Île-de-France) or its name — in the local language or in Latin script — and a number. A region with no row stays grey. NUTS 1 is the coarsest level: Germany's Länder, France's regions grouped, Italy's five macro-regions, Poland's seven, and whole countries where the country is small. The NUTS system covers the EU, EFTA and the candidate countries; the United Kingdom, Ukraine, Belarus, Russia and the Caucasus have no regions in it and appear only as surroundings. Country borders are drawn on top. Same design as the other world and continent maps.

A choropleth map of the regions of the "eu-nuts1" geography, each region filled by one number from your data (the "population" column). The borders of the "eu-nuts0" regions are drawn on top of the regions in dark navy blue, 0.5 units wide, so the finer regions read inside their larger units. The view is cropped to longitude -10–44.5 and latitude 34–71.

A sequential colour scale from pale blue for the smallest values to deep navy blue for the largest; pinned to 500000 to 12000000, so values beyond the ends take the end colour and the colour bar says ≤ and ≥; a gradient colour bar below the map, with its labels underneath; values formatted in compact form (1.2k, 3.4M), 1 decimal; on a white canvas (#ffffff) with near-black text — a light theme; 0.5-unit hairline outlines between regions.

The title and description are left-aligned above the chart. Font: Inter (the default); a source line with a link sits at the bottom, with the chartlink badge in the corner.

Data: 2 columns — region (string, "NUTS 1 region (code or name)"), population (number, "Population, 1 January 2025") — and 112 rows in the example "Population of Europe's NUTS 1 regions, 2025". Regions are named by ISO 3166-2 region codes or region names; a region with no row stays unfilled in grey, and an unknown code fails loudly with the nearest matches. Your data keeps the same column ids and every other setting comes from the template; an agent can change any of them.

Other looks of this template — dark (on a dark canvas): ast_gw8kuBsjoXBHQqX3YWxHL; buckets (with the values in classes and a swatch legend): ast_2b6IC2bKx0UwcVqGZOWfE; editorial (in the editorial house style — serif type on paper, a green ramp): ast_I3lukl2888ysQapfJag7X; categories (with a text category per region and a swatch legend): ast_jhynugTMA2gOQCuaniJ7W; buckets-dark (with the values in classes and a swatch legend, on a dark canvas): ast_u7sZvwI8PE8O3VkjXZ5Ad; surroundings (with the land around the place drawn in grey): ast_j07Zx3N1WX0v3DvYX2cpB; categories-dark (with a text category per region and a swatch legend, on a dark canvas): ast_ayfZUSPwqZMOl6wqU4CdA; buckets-editorial (with the values in classes and a swatch legend, in the editorial house style — serif type on paper, a green ramp): ast_ScYOfvmPZsTfdaXr910fi; dark-surroundings (on a dark canvas, with the land around the place drawn in grey): ast_sWHhzYzF66ROIFio7symL; buckets-surroundings (with the values in classes and a swatch legend, with the land around the place drawn in grey): ast_fGM1Q0TSXdPbX2yVKhUMx; categories-editorial (with a text category per region and a swatch legend, in the editorial house style — serif type on paper, a green ramp): ast_m6gJWX2x2sykkVEpGyLhP; editorial-surroundings (in the editorial house style — serif type on paper, a green ramp, with the land around the place drawn in grey): ast_q4XS6X35o29zxD8uIdXyY; categories-surroundings (with a text category per region and a swatch legend, with the land around the place drawn in grey): ast_pHKCM9NqBGjYmfTVpQVhv; buckets-dark-surroundings (with the values in classes and a swatch legend, on a dark canvas, with the land around the place drawn in grey): ast_wlQYeS8za5ivJbDCAHzw8; categories-dark-surroundings (with a text category per region and a swatch legend, on a dark canvas, with the land around the place drawn in grey): ast_K22gWx16HgVyO55O6BFPu; buckets-editorial-surroundings (with the values in classes and a swatch legend, in the editorial house style — serif type on paper, a green ramp, with the land around the place drawn in grey): ast_uG02ZEjKeSSW0PIto7l7G; categories-editorial-surroundings (with a text category per region and a swatch legend, in the editorial house style — serif type on paper, a green ramp, with the land around the place drawn in grey): ast_y5x3dGrtCs28VAcf3floI. On the page, switch with the toggles; an agent passes that id as the template instead.

## Looks

Available: gradient light, gradient dark, buckets light, gradient editorial, categories light, buckets dark, gradient light with surroundings, categories dark, buckets editorial, gradient dark with surroundings, buckets light with surroundings, categories editorial, gradient editorial with surroundings, categories light with surroundings, buckets dark with surroundings, categories dark with surroundings, buckets editorial with surroundings, categories editorial with surroundings. Pick one with the `theme`, `dataType` and `surroundings` knobs.

## Knobs (the template's settings)

- `theme`: "light" | "dark" | "editorial" (default "light") — light or dark: the whole colour bundle — canvas, text, outlines, key (editorial: the house style, where a template offers it — the contract's looks say)
- `dataType`: "gradient" | "buckets" | "categories" (default "gradient") — How the value column is encoded. "gradient": a number per region on a continuous scale. "buckets": numbers sorted into classes with a swatch key. "categories": a TEXT label per region, one colour each
- `surroundings`: boolean (default false) — true draws the land around the place in quiet grey — the neighbouring states or countries — and the water in blue, so the reader sees where it sits. The frame stays the same. With it, waterColor and landColor apply.
- `missing`: "hatch" | "plain" — How a region with no row is drawn: "hatch" (thin diagonal lines, the templates' default) or "plain" (a flat grey)
- `waterColor`: string — With surroundings: the colour of the water (the map area's ground). An error without surroundings: true
- `landColor`: string — With surroundings: the fill of the neighbouring land. An error without surroundings: true
- `backgroundColor`: string — Overrides the canvas colour after the theme; text and outline colours stay the theme's
- `border`: object — A frame around the whole graphic
- `title`: object
- `description`: object
- `source`: object — The source line at the bottom left
- `brand`: object — The byline at the bottom right — premium charts only; the free tier reads "Made with chartlink.app"
- `colormap`: "blues" | "greens" | "purples" | "oranges" | "reds" | "greys" | "yellow-green-blue" | "yellow-orange-red" | "viridis" | "magma" | "cividis" | "blue-red" | "red-blue" | "brown-teal" | "purple-green" | "orange-purple" — gradient and buckets: the colour ramp. One hue: blues (default), greens, purples, oranges, reds, greys. Several hues: yellow-green-blue, yellow-orange-red, viridis, magma, cividis. Diverging around zero, for signed data: blue-red, red-blue, brown-teal, purple-green, orange-purple. Details: blues (the default: one blue, light to dark); greens (one green, light to dark); purples (one purple, light to dark); oranges (one orange, light to dark); reds (one red, light to dark); greys (one grey, light to dark — for a muted map); yellow-green-blue (pale yellow through green to deep blue (ColorBrewer YlGnBu)); yellow-orange-red (pale yellow through orange to deep red (ColorBrewer YlOrRd) — heat); viridis (dark purple through teal to yellow — perceptually even, colour-blind safe); magma (black through magenta to pale yellow — perceptually even); cividis (blue to yellow — even and safe for every kind of colour blindness); blue-red (blue below zero, red above (the default diverging)); red-blue (red below zero, blue above); brown-teal (brown below, teal above (ColorBrewer BrBG) — dry against wet, loss against gain); purple-green (purple below, green above (ColorBrewer PRGn)); orange-purple (orange below, purple above (ColorBrewer PuOr))
- `direction`: "normal" | "reversed" — gradient and buckets: "reversed" runs the colormap the other way — dark for low values, or the arms of a diverging ramp swapped — when a high number is the bad one
- `range`: array — gradient (and equal-width buckets): pin the scale to [min, max]; values beyond clamp and the key says ≤ / ≥ — an outlier no longer pushes every other region to one end. Omit to fit the data
- `breaks`: array — buckets: the ascending cut points between classes; sets the class count
- `classes`: integer — buckets: how many quantile classes when breaks are not given (default 5)
- `categoryColors`: object — categories: a colour per label, e.g. {"Republican": "#dc2626"}
- `categoryOrder`: array — categories: the key's order; labels not listed follow in order of appearance

## Data

| column | role | type | about |
|---|---|---|---|
| `region` | region | string | The region, as a code the geography knows (see region) |
| `population` | value | number | The value per region: a number for gradient and buckets, a text label for categories |

## Region codes

Geography `eu-nuts1`: ISO 3166-2 region codes or region names. The region's exact name or a listed alias also works; unknown codes fail with the closest matches.. A region with no row stays grey.
Examples: `AL0` (Shqipëria), `FRY` (RUP FR — Régions Ultrapériphériques Françaises), `XK0` (Kosovo).
Every region with its aliases: https://chartlink.app/api/geographies/eu-nuts1

## What each dataType expects

- **gradient**: value column number; knobs `colormap`, `direction`, `range`. A continuous colour scale fitted to your numbers; colormap names the ramp (blues by default; a diverging one pins its middle to zero), direction reverses it, range pins the ends so an outlier cannot stretch the scale.
- **buckets**: value column number; knobs `colormap`, `direction`, `breaks`, `classes`, `range`. Numbers sorted into classes with a swatch key: give breaks, or a class count (quantiles by default; with range, equal-width); colormap and direction as for gradient.
- **categories**: value column string; knobs `categoryColors`, `categoryOrder`. A label per region, one colour each, keyed in the order the labels first appear (or categoryOrder).

## With surroundings

With surroundings: true the water and the neighbouring land are drawn; these two knobs recolour them. Without it they are an error. Knobs: `waterColor`, `landColor`.

## Make one

Copy this shape, replace the rows with yours, and POST it (no account needed: `POST /api/signup` returns a key, shown once).

```
POST https://chartlink.app/api/assets
Authorization: Bearer <apiKey>
{
  "template": "ast_pcUGonWAuhzKq7wrfQyn3",
  "knobs": {
    "theme": "light",
    "dataType": "gradient",
    "title": {
      "text": "Your title"
    },
    "description": {
      "text": "One sentence on what the map shows."
    },
    "source": {
      "text": "Where the numbers come from"
    }
  },
  "data": {
    "columns": [
      {
        "id": "region",
        "type": "string"
      },
      {
        "id": "population",
        "type": "number"
      }
    ],
    "rows": [
      [
        "DEF",
        2959517
      ],
      [
        "DE2",
        13248928
      ],
      [
        "DE3",
        3685265
      ]
    ]
  },
  "publish": true
}
```

Dry run first if unsure of the codes: `POST https://chartlink.app/api/templates/map-europe-nuts-1/check` with {data, knobs} reports unmatched values with the closest real codes and creates nothing.

The create does this check itself: a region value that matches nothing comes back as a 400 listing it with the closest real codes, before anything is made. The template can be named by its id, its slug, or its page address (europe/nuts-1).

Over MCP (`https://chartlink.app/mcp`): `list_templates` → `get_template` → `create_from_template` (`check_template_data` when you want the report without creating).

- POST https://chartlink.app/api/assets with the example's shape: template, knobs, your data (publish: true when it is final). Over MCP: create_from_template.
- A 201 means it validated and rendered; the response carries urls.embedIframe, urls.png and urls.page, and a preview to look at.
- Anything beyond the knobs is the advanced path: a config object, deep-merged after the knobs — the manual at /llms-full.txt.

## Similar templates

- Map of Europe by NUTS 3 region, one number per region: https://chartlink.app/templates/map-europe-nuts-3.md
- Map of Europe by NUTS 2 region, one number per region: https://chartlink.app/templates/map-europe-nuts-2.md
- Map of Europe by country, one number per country: https://chartlink.app/templates/map-europe.md
- Map of Slovakia by region, one number per region: https://chartlink.app/templates/map-slovakia-regions.md
- Map of Greece by region, one number per region: https://chartlink.app/templates/map-greece-regions.md
- Map of Ireland by region, one number per region: https://chartlink.app/templates/map-ireland-regions.md
- Map of Finland by region, one number per region: https://chartlink.app/templates/map-finland-regions.md
- Map of Czechia by region, one number per region: https://chartlink.app/templates/map-czechia-regions.md

All templates: https://chartlink.app/llms.txt · The engine behind them: https://chartlink.app/llms-full.txt