← The United Stateschartlink · choropleth
The United States by: states · counties · congressional districts · metro areas · 3-digit ZIP code areas
Map of the United States by state, one number per state
Also: US state map · colour each US state by a value · choropleth of the 50 states · map of America by state · state-level data map

Example: Average income per tax return by state, 2021 — Adjusted gross income per federal return filed for tax year 2021, by state. Connecticut, Massachusetts, New York and California file the highest average incomes; Mississippi and West Virginia the lowest. Puerto Rico files separately and stays grey.
About this template
Data: one row per state with the two-letter USPS code (CA, TX, NY…) and a number. The District of Columbia is DC and Puerto Rico is PR. A state with no row stays grey. Alaska, Hawaii and Puerto Rico are drawn as insets. Same design as the county, district and metro maps, so the four can sit side by side.
A choropleth map of the 50 US states, the District of Columbia and Puerto Rico, with Alaska, Hawaii and Puerto Rico as insets, each region filled by one number from your data (the "income" column).
A sequential colour scale from pale blue for the smallest values to deep navy blue for the largest; pinned to 40000 to 150000, 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 as USD amounts, in compact form (1.2k, 3.4M), 0 decimals; on a white canvas (#ffffff) with near-black text — a light theme; 1-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 — state (string, "State (USPS code)"), income (number, "Average AGI per return ($)") — and 51 rows in the example "Average income per tax return by state, 2021". Regions are named by two-letter USPS state codes; 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_4du9jLgj0Lnk3M81fKPnc; buckets (with the values in classes and a swatch legend): ast_O3QtsunR6XNVs74y5YHZL; editorial (in the editorial house style — serif type on paper, a green ramp): ast_NmSQP5KYYBHf2jwNltI7z; categories (with a text category per region and a swatch legend): ast_IHl4qV6TkhK87RPIUkwRV; buckets-dark (with the values in classes and a swatch legend, on a dark canvas): ast_m8Txmz1WbusU9AmeBADTs; surroundings (with the land around the place drawn in grey): ast_AxMxtBcJcwxCIl88ugMFi; categories-dark (with a text category per region and a swatch legend, on a dark canvas): ast_rUHhFn69jSl1D9g9xs5JH; buckets-editorial (with the values in classes and a swatch legend, in the editorial house style — serif type on paper, a green ramp): ast_coHXLrkcSc8qpemVeHcqY; dark-surroundings (on a dark canvas, with the land around the place drawn in grey): ast_ykJSc0lkcO0w9KTiAOBO5; buckets-surroundings (with the values in classes and a swatch legend, with the land around the place drawn in grey): ast_BpKrL80Whox9HPv3XBW7F; 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_xjhNxusEEA4XQQjsT3EeT; editorial-surroundings (in the editorial house style — serif type on paper, a green ramp, with the land around the place drawn in grey): ast_slUqv3he8JXk30zQuDh0I; categories-surroundings (with a text category per region and a swatch legend, with the land around the place drawn in grey): ast_VWWFyXhppz0OI1WkkCXAs; 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_pleCZJRbYR6yrxhSTLQzn; 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_gXCcMdZv4fWIFVCQBlUij; 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_zP0mAq7RUZxcm4wWKsJnO; 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_v3YG4hCB7uFgnL9TUsLxE. On the page, switch with the toggles; an agent passes that id as the template instead.
Use it with your agent
Copy the prompt, paste it into Claude, ChatGPT, Cursor or any agent with the chartlink MCP server or API, and give it your numbers. It rebuilds this exact design with your data and hands back an embed, a PNG and a page.
The prompt in full
Data this template expects
| column id | type | in the example |
|---|---|---|
| state | string | State (USPS code) |
| income | number | Average AGI per return ($) |
51 rows in the example. Your data keeps these column ids; everything else about the chart comes from the template.
For agents: the API call
POST https://chartlink.app/api/assets
{
"template": "ast_Urxd3qNUqDE1CHBV0otJf",
"knobs": {
"theme": "light",
"dataType": "gradient",
"title": {
"text": "Your title"
},
"source": {
"text": "Where the numbers come from"
}
},
"data": {
"columns": [
{
"id": "state",
"type": "string"
},
{
"id": "income",
"type": "number"
}
],
"rows": [
[
"…"
]
]
},
"publish": true
}The recipe (the template's settings)
{
"chart": {
"domain": [
40000,
150000
],
"format": {
"kind": "currency",
"compact": true,
"currency": "USD",
"decimals": 0
},
"outline": {
"width": 1
},
"geography": "us-states-pr"
},
"title": {
"text": "Average income per tax return by state, 2021"
},
"preset": "map-light",
"source": {
"url": "https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-statistics-zip-code-data-soi",
"text": "IRS Statistics of Income, individual income tax statistics, tax year 2021"
},
"encoding": {
"value": {
"column": "income"
},
"region": {
"column": "state"
}
},
"description": {
"text": "Adjusted gross income per federal return filed for tax year 2021, by state. Connecticut, Massachusetts, New York and California file the highest average incomes; Mississippi and West Virginia the lowest. Puerto Rico files separately and stays grey."
}
}map · choropleth · united-states · states · us-set
Similar templates
- Map of the United States by 3-digit ZIP code area, one number per area, with the state borders
- Map of the United States by metropolitan area, one number per metro, with the state borders
- Map of the United States by congressional district, one number per district, with the state borders
- Map of the United States by county, one number per county, with the state borders
- Map of Brazil by state, one number per state
- Map of Germany by state, one number per state
- Map of Austria by state, one number per state
- Map of Wyoming by ZIP code, one number per ZIP code
- All templates →