← Indiachartlink · choropleth
India by: states and union territories · districts
Map of India by state or union territory, one number per state or union territory
Also: India map by state · map of Indian states and union territories · भारत का राज्यवार नक्शा · Indian states choropleth · map of India's 28 states and 8 union territories

Example: Population of India's states and union territories, 2011 — The 2011 Census of India, the most recent, by state and union territory on today's boundaries: Telangana's 2011 population is split out of Andhra Pradesh, and Ladakh's out of Jammu and Kashmir. Uttar Pradesh alone counted 200 million people.
About this template
Data: one row per state or union territory with its ISO 3166-2 code (IN-MH for Maharashtra, IN-DL for Delhi) or its name, and a number. A state or union territory with no row stays grey. Same design as the other country maps, so they sit side by side.
A choropleth map of the states, provinces or regions of India (ISO 3166-2 codes), each region filled by one number from your data (the "population" column).
A sequential colour scale from pale blue for the smallest values to deep navy blue for the largest; pinned to 1000000 to 200000000, 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.6-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 or union territory (ISO 3166-2 code or name)"), population (number, "Population, Census 2011") — and 36 rows in the example "Population of India's states and union territories, 2011". 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_oKgxhxi6MnEXpxbRUub7m; buckets (with the values in classes and a swatch legend): ast_hQRQOrvpn79tVNs1o89j7; editorial (in the editorial house style — serif type on paper, a green ramp): ast_P19ADII3wL2oqj4xTDTJe; categories (with a text category per region and a swatch legend): ast_4BvHIFgAUXySU5E7k5KqV; buckets-dark (with the values in classes and a swatch legend, on a dark canvas): ast_VgYHy4qMAuW2sphBr2WN4; surroundings (with the land around the place drawn in grey): ast_QUyDajXFT3jHc0eTGZnVe; categories-dark (with a text category per region and a swatch legend, on a dark canvas): ast_j6y8FGNkyMVBLPIqeiruZ; buckets-editorial (with the values in classes and a swatch legend, in the editorial house style — serif type on paper, a green ramp): ast_39M0c6NVyeg5XmLW2qKTL; dark-surroundings (on a dark canvas, with the land around the place drawn in grey): ast_Ec8YddvzWZI30wwZMmxFy; buckets-surroundings (with the values in classes and a swatch legend, with the land around the place drawn in grey): ast_vEcNAmrzwEundvYbIHNse; 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_dhGWCp0K6ny8W3Qkufqv8; editorial-surroundings (in the editorial house style — serif type on paper, a green ramp, with the land around the place drawn in grey): ast_KmHsk2pJQMnyRpHZqiusi; categories-surroundings (with a text category per region and a swatch legend, with the land around the place drawn in grey): ast_JJROnzcs42AkHi3fnV86D; 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_UNL15qGVzE4VdYTJ22UH1; 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_rOzKrCWE1grWHwiSOwr7I; 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_kLG9AHhGYmZJO3PA7tKG1; 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_htI6i6bxrkau6cO3e0N6Z. 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 or union territory (ISO 3166-2 code or name) |
| population | number | Population, Census 2011 |
36 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_bUz9vBQgldbccEj4uIjIz",
"knobs": {
"theme": "light",
"dataType": "gradient",
"title": {
"text": "Your title"
},
"source": {
"text": "Where the numbers come from"
}
},
"data": {
"columns": [
{
"id": "state",
"type": "string"
},
{
"id": "population",
"type": "number"
}
],
"rows": [
[
"…"
]
]
},
"publish": true
}The recipe (the template's settings)
{
"chart": {
"domain": [
1000000,
200000000
],
"format": {
"kind": "number",
"compact": true,
"decimals": 1
},
"outline": {
"width": 0.6
},
"geography": "in-regions"
},
"title": {
"text": "Population of India's states and union territories, 2011"
},
"preset": "map-light",
"source": {
"url": "https://censusindia.gov.in/",
"text": "Census of India 2011, Office of the Registrar General (compiled table)"
},
"encoding": {
"value": {
"column": "population"
},
"region": {
"column": "state"
}
},
"description": {
"text": "The 2011 Census of India, the most recent, by state and union territory on today's boundaries: Telangana's 2011 population is split out of Andhra Pradesh, and Ladakh's out of Jammu and Kashmir. Uttar Pradesh alone counted 200 million people."
}
}map · choropleth · india · states-and-union-territories · country-regions
Similar templates
- Map of India by district, one number per district
- Map of Slovakia by municipality, one number per municipality
- Map of Switzerland by municipality, one number per municipality
- Map of Austria by municipality, one number per municipality
- Map of Romania by commune, one number per commune
- Map of Hungary by municipality, one number per municipality
- Map of Portugal by parish, one number per parish
- Map of Poland by municipality, one number per municipality
- All templates →