{"id":22985,"date":"2024-10-22T13:51:52","date_gmt":"2024-10-22T17:51:52","guid":{"rendered":"https:\/\/www.storybench.org\/?p=22985"},"modified":"2026-07-09T12:31:44","modified_gmt":"2026-07-09T16:31:44","slug":"how-to-create-your-first-choropleth-map-in-mapbox","status":"publish","type":"post","link":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/","title":{"rendered":"How to create your first choropleth map in Mapbox"},"content":{"rendered":"\n<p>Few things grab a reader&#8217;s attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated.<\/p>\n\n\n\n<p>For static maps, free tools like <a href=\"https:\/\/www.qgis.org\/\">QGIS<\/a> work well, but if you want to add interactivity and dynamic features, Mapbox is the way to go. I\u2019ll walk you through how I used Mapbox to create the base of the map for my story on <a href=\"https:\/\/www.bostonglobe.com\/2024\/01\/10\/real-estate\/what-are-apartment-bidding-wars-costing-you\/\">rent bidding in Greater Boston<\/a>.<\/p>\n\n\n\n<p>To get started, you will need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Mapbox account (sign up <a href=\"https:\/\/account.mapbox.com\/auth\/signup\/\">here<\/a>)<\/li>\n\n\n\n<li>Some geospatial data (I&#8217;ll show you where to get this)<\/li>\n\n\n\n<li>A relaxing breathing technique for when you inevitably run into issues<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">The setup<\/h2>\n\n\n\n<p>Once you sign up for an account, navigate to the dashboard. Once you\u2019re there, click on the \u201cCreate a map in Studio\u201d button:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"566\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1-1200x566.png\" alt=\"\" class=\"wp-image-22986\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1-1200x566.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1-500x236.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1-768x362.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1-1536x724.png 1536w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-1.png 1834w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Click the dropdown arrow on the button called \u201cNew style\u201d and select \u201cClassic template\u201d (I find the map features are easier to customize in the classic template). Then, you should see a popup that looks like this:<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"695\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-1200x695.png\" alt=\"\" class=\"wp-image-22987\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-1200x695.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-500x290.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-768x445.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-1536x890.png 1536w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-2-2048x1187.png 2048w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>For my project, I chose the monochrome style in the dark variation, but you can choose whichever style makes sense for the story you\u2019re telling. Once you\u2019re inside of your project, you should see this panel containing all the feature layers in the map. Here, you can upload the GeoJSON file containing the data you want to visualize. Simply click: \u201c+\u201d \u2192 \u201cCustom layer\u201d \u2192 \u201cUpload data.\u201d<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1196\" height=\"277\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-3.png\" alt=\"\" class=\"wp-image-22988\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-3.png 1196w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-3-500x116.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-3-768x178.png 768w\" sizes=\"(max-width: 1196px) 100vw, 1196px\" \/><\/figure>\n\n\n\n<p>Note: the free tier of Mapbox only allows for 20 data uploads per a month. I never found this to be an issue, but it does mean you should try to ensure your data is cleaned and shaped properly before uploading to Mapbox. If you do run up against the limit, Mapbox allows you to continue adding more dataset layers through their API, but this is a more technically involved process.<\/p>\n\n\n\n<p>My rent bidding project uses rental data from the MLS (Multiple listing services), a database of properties sold and rented. The MLS, however, is restricted for use by real estate professionals. The trickiest part of most any data project is obtaining the data and that was especially true in this case. Thankfully, an editor at The Boston Globe was able to help me obtain the data I needed from the MLS through the organization\u2019s access.&nbsp;<\/p>\n\n\n\n<p>For this tutorial, the U.S. Census has lots of great data available in a GeoJSON format, meaning that it has both the geographic shapes and the stats of interest. If you\u2019re following along and need some data to work with, you can find a GeoJSON file of Boston-area poverty rates on a ZIP Code level <a href=\"https:\/\/data.census.gov\/map\/310XX00US14460$8600000\/ACSST5Y2022\/S1701?t=Income%20and%20Poverty&amp;layer=VT_2022_860_Z2_PY_D1&amp;loc=42.3671,-71.0457,z7.7080\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Making your map pretty<\/h2>\n\n\n\n<p>Once your GeoJSON file is uploaded, click on the box under \u201cSource\u201d and find your dataset. After you select it, you should see the shapes of the ZIP Codes highlighted like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1032\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4-1200x1032.png\" alt=\"\" class=\"wp-image-22989\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4-1200x1032.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4-500x430.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4-768x660.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4-1536x1321.png 1536w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-4.png 1649w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>A good start! But not quite what we want.<\/p>\n\n\n\n<p>In order to make a choropleth map from the new layer, you need to switch from the \u201cSelect data\u201d tab to the \u201cStyle\u201d tab. Next, click \u201cColor\u201d \u2192 \u201cStyle across data range.\u201d You\u2019ll see a popup containing the names of every column in your dataset. Pick the column that contains the data you want to show in the map. For me, that\u2019s \u201cPERCENT_POSITIVE_PRICE_DIFFERENCE\u201d (I like to make my variable names big, clear, and maybe a little ugly \u00af\\_(\u30c4)_\/\u00af.)<\/p>\n\n\n\n<p>Now, you can style the color of each ZIP Code based on the value of the column you chose. To start, let\u2019s make the lowest value grey and the highest value blue. Here\u2019s what that looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"761\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5-1200x761.png\" alt=\"\" class=\"wp-image-22990\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5-1200x761.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5-500x317.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5-768x487.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5-1536x974.png 1536w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-5.png 1820w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Now it\u2019s starting to look more like the choropleth map we want. If you\u2019re happy, you can leave it like this. Another option is to set the \u201cRate of change\u201d from \u201clinear\u201d to \u201cstepped.\u201d This lets you not only set specific \u201csteps\u201d in the data, say every five percentage points, it also lets you select the colors for each of those steps. Here\u2019s what that looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"763\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6-1200x763.png\" alt=\"\" class=\"wp-image-22991\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6-1200x763.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6-500x318.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6-768x488.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6-1536x977.png 1536w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-6.png 1805w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>If you decide to put the data into \u201cbins\u201d like this, you\u2019ll want to use a tool like colordesigner.io\u2019s <a href=\"https:\/\/colordesigner.io\/gradient-generator\">gradient generator<\/a>. This lets you select the start and end colors, tell it how many steps you have, and it will provide you HEX color codes you can paste into Mapbox to create an even gradient across your steps.<\/p>\n\n\n\n<p>Side note:&nbsp; If you want map features like place names or roadways to display above the choropleth layer, just drag your data layer beneath those features in the layers panel.<\/p>\n\n\n\n<p>Play around with the fill and stroke colors and opacity and once you\u2019re satisfied with the look of the map just click the publish button.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">From Studio to Story<\/h2>\n\n\n\n<p>Your map is looking great in Mapbox\u2019s Studio editor, but how do you get it into your story? There\u2019s a couple of options, but the simplest one is an iframe.<\/p>\n\n\n\n<p>If you\u2019ve ever used no-code data viz tools like Datawrapper or Flourish you\u2019re likely familiar with iframes. Besides their simplicity, they\u2019re compatible with virtually every CMS, meaning they\u2019re easy to integrate into a story. To get an iframe for your map, just click the \u201cShare\u201d button next to \u201cPublish\u201d and copy the iframe code in the \u201cWebsite embed\u201d box. Then, you just add that iframe into the part of the story where you want the map to appear.<\/p>\n\n\n\n<p>But wait!<\/p>\n\n\n\n<p>Before we add the iframe to our story and call it a day, there\u2019s still one thing left to do. We need to create a restricted access token for our map. An access token is a string of numbers and letters that functions like a special key to give access to your map. This token is included in the iframe you copied. Along with providing your iframe access to the map, the token also gives permission for API calls to be made with your Mapbox account.&nbsp;<\/p>\n\n\n\n<p>By default, Mapbox uses an unrestricted \u201cpublic token\u201d for any map you make. The issue is that anyone could see that token and start using it for their own projects. Since Mapbox\u2019s free tier only allows for a certain number of API calls in a given period, we don\u2019t want anyone else to use our token.<\/p>\n\n\n\n<p>In most cases, people have to use more coding-intensive means to <em>hide<\/em> their token, so it can&#8217;t be stolen. Thankfully, Mapbox offers a simpler alternative. Back on the account dashboard page, we can create a new token and restrict its access so it only works on the URLs we want \u2014 namely the URL of our story.&nbsp;<\/p>\n\n\n\n<p>To do so, just click \u201cCreate a token,\u201d give it a descriptive name, and add the URL of the webpage you want the map to display on. Finally, replace the default token in the iframe with your new restricted token.<\/p>\n\n\n\n<p>And voil\u00e0!<\/p>\n\n\n\n<iframe width='100%' height='400px' src=\"https:\/\/api.mapbox.com\/styles\/v1\/elijah-messmer\/cm1jk0f7k00db01p65np4dr4x.html?title=false&#038;access_token=pk.eyJ1IjoiZWxpamFoLW1lc3NtZXIiLCJhIjoiY20xanFhbGVxMTF1ZDJrcHZlOWhqOHJmaSJ9.8zL3zECU95BilHPVr6gPZA&#038;zoomwheel=false#10.26\/42.3004\/-70.9717\" title=\"Test map\" style=\"border:none;\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\">The bells and whistles<\/h2>\n\n\n\n<p>We have an interactive choropleth map in our story, great! It lets you pan around, zoom in, and &#8230;. well that\u2019s pretty much it. It\u2019s a good start, but you\u2019re probably already saying \u201cThis would be better if it had a legend to explain the colors, and maybe some popups for each of the ZIP Codes, oh and a search bar so I can see what the data is like where live.\u201d I\u2019d say you\u2019re right! And not just because I already had all those thoughts myself. <br>In the next tutorial, we\u2019ll look at <a href=\"https:\/\/www.storybench.org\/how-to-create-an-interactive-dashboard-in-mapbox\/\" title=\"how to create an interactive dashboard in Mapbox\">how to create an interactive dashboard in Mapbox<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1164\" src=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-7-1200x1164.png\" alt=\"\" class=\"wp-image-22992\" style=\"width:138px;height:auto\" srcset=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-7-1200x1164.png 1200w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-7-500x485.png 500w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-7-768x745.png 768w, https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-7.png 1348w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Few things grab a reader&#8217;s attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you<\/p>\n","protected":false},"author":458,"featured_media":22993,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[158,394,729],"class_list":["post-22985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-data-visualization","tag-map","tag-mapbox"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Few things grab a reader&#039;s attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Elijah Nicholson-Messmer\"\/>\n\t<meta name=\"google-site-verification\" content=\"bDVtl5czw1s522D_genM4X8bu6pW8kmYjlE-ZASNLoU\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Storybench - Exploring data and digital storytelling. Northeastern&#039;s School of Journalism\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"How to create your first choropleth map in Mapbox - Storybench\" \/>\n\t\t<meta property=\"og:description\" content=\"Few things grab a reader&#039;s attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1976\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1437\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-10-22T17:51:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-09T16:31:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/storybench\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@storybench\" \/>\n\t\t<meta name=\"twitter:title\" content=\"How to create your first choropleth map in Mapbox - Storybench\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Few things grab a reader&#039;s attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@storybench\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#blogposting\",\"name\":\"How to create your first choropleth map in Mapbox - Storybench\",\"headline\":\"How to create your first choropleth map in Mapbox\",\"author\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/author\\\/elijahnicholsonmessmer\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/SS-Hero.png\",\"width\":1976,\"height\":1437},\"datePublished\":\"2024-10-22T13:51:52-04:00\",\"dateModified\":\"2026-07-09T12:31:44-04:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#webpage\"},\"articleSection\":\"Tutorials, data visualization, map, Mapbox\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.storybench.org\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/category\\\/tutorials\\\/#listItem\",\"name\":\"Tutorials\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/category\\\/tutorials\\\/#listItem\",\"position\":2,\"name\":\"Tutorials\",\"item\":\"https:\\\/\\\/www.storybench.org\\\/category\\\/tutorials\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#listItem\",\"name\":\"How to create your first choropleth map in Mapbox\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#listItem\",\"position\":3,\"name\":\"How to create your first choropleth map in Mapbox\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/category\\\/tutorials\\\/#listItem\",\"name\":\"Tutorials\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/#organization\",\"name\":\"Storybench\",\"description\":\"Exploring data and digital storytelling. Northeastern's School of Journalism\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/storybench-logo.png\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#organizationLogo\",\"width\":1373,\"height\":303,\"caption\":\"Storybench logo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/storybench\\\/\",\"https:\\\/\\\/twitter.com\\\/storybench?lang=en\",\"https:\\\/\\\/www.instagram.com\\\/story_bench\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/storybench\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/author\\\/elijahnicholsonmessmer\\\/#author\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/author\\\/elijahnicholsonmessmer\\\/\",\"name\":\"Elijah Nicholson-Messmer\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bba4a45d0280812083a5c726e0c80ac95cfcfb22163c8d2c477158226193f208?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Elijah Nicholson-Messmer\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#webpage\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/\",\"name\":\"How to create your first choropleth map in Mapbox - Storybench\",\"description\":\"Few things grab a reader's attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/author\\\/elijahnicholsonmessmer\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/author\\\/elijahnicholsonmessmer\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/SS-Hero.png\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#mainImage\",\"width\":1976,\"height\":1437},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/how-to-create-your-first-choropleth-map-in-mapbox\\\/#mainImage\"},\"datePublished\":\"2024-10-22T13:51:52-04:00\",\"dateModified\":\"2026-07-09T12:31:44-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.storybench.org\\\/#website\",\"url\":\"https:\\\/\\\/www.storybench.org\\\/\",\"name\":\"storybench\",\"description\":\"Exploring data and digital storytelling. Northeastern's School of Journalism\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.storybench.org\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"How to create your first choropleth map in Mapbox - Storybench","description":"Few things grab a reader's attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and","canonical_url":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"bDVtl5czw1s522D_genM4X8bu6pW8kmYjlE-ZASNLoU","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#blogposting","name":"How to create your first choropleth map in Mapbox - Storybench","headline":"How to create your first choropleth map in Mapbox","author":{"@id":"https:\/\/www.storybench.org\/author\/elijahnicholsonmessmer\/#author"},"publisher":{"@id":"https:\/\/www.storybench.org\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png","width":1976,"height":1437},"datePublished":"2024-10-22T13:51:52-04:00","dateModified":"2026-07-09T12:31:44-04:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#webpage"},"isPartOf":{"@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#webpage"},"articleSection":"Tutorials, data visualization, map, Mapbox"},{"@type":"BreadcrumbList","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.storybench.org#listItem","position":1,"name":"Home","item":"https:\/\/www.storybench.org","nextItem":{"@type":"ListItem","@id":"https:\/\/www.storybench.org\/category\/tutorials\/#listItem","name":"Tutorials"}},{"@type":"ListItem","@id":"https:\/\/www.storybench.org\/category\/tutorials\/#listItem","position":2,"name":"Tutorials","item":"https:\/\/www.storybench.org\/category\/tutorials\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#listItem","name":"How to create your first choropleth map in Mapbox"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.storybench.org#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#listItem","position":3,"name":"How to create your first choropleth map in Mapbox","previousItem":{"@type":"ListItem","@id":"https:\/\/www.storybench.org\/category\/tutorials\/#listItem","name":"Tutorials"}}]},{"@type":"Organization","@id":"https:\/\/www.storybench.org\/#organization","name":"Storybench","description":"Exploring data and digital storytelling. Northeastern's School of Journalism","url":"https:\/\/www.storybench.org\/","logo":{"@type":"ImageObject","url":"https:\/\/www.storybench.org\/wp-content\/uploads\/2023\/11\/storybench-logo.png","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#organizationLogo","width":1373,"height":303,"caption":"Storybench logo"},"image":{"@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/storybench\/","https:\/\/twitter.com\/storybench?lang=en","https:\/\/www.instagram.com\/story_bench\/","https:\/\/www.linkedin.com\/company\/storybench"]},{"@type":"Person","@id":"https:\/\/www.storybench.org\/author\/elijahnicholsonmessmer\/#author","url":"https:\/\/www.storybench.org\/author\/elijahnicholsonmessmer\/","name":"Elijah Nicholson-Messmer","image":{"@type":"ImageObject","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/bba4a45d0280812083a5c726e0c80ac95cfcfb22163c8d2c477158226193f208?s=96&d=mm&r=g","width":96,"height":96,"caption":"Elijah Nicholson-Messmer"}},{"@type":"WebPage","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#webpage","url":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/","name":"How to create your first choropleth map in Mapbox - Storybench","description":"Few things grab a reader's attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.storybench.org\/#website"},"breadcrumb":{"@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#breadcrumblist"},"author":{"@id":"https:\/\/www.storybench.org\/author\/elijahnicholsonmessmer\/#author"},"creator":{"@id":"https:\/\/www.storybench.org\/author\/elijahnicholsonmessmer\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png","@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#mainImage","width":1976,"height":1437},"primaryImageOfPage":{"@id":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/#mainImage"},"datePublished":"2024-10-22T13:51:52-04:00","dateModified":"2026-07-09T12:31:44-04:00"},{"@type":"WebSite","@id":"https:\/\/www.storybench.org\/#website","url":"https:\/\/www.storybench.org\/","name":"storybench","description":"Exploring data and digital storytelling. Northeastern's School of Journalism","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.storybench.org\/#organization"}}]},"og:locale":"en_US","og:site_name":"Storybench - Exploring data and digital storytelling. Northeastern's School of Journalism","og:type":"article","og:title":"How to create your first choropleth map in Mapbox - Storybench","og:description":"Few things grab a reader's attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and","og:url":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/","og:image":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png","og:image:secure_url":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png","og:image:width":1976,"og:image:height":1437,"article:published_time":"2024-10-22T17:51:52+00:00","article:modified_time":"2026-07-09T16:31:44+00:00","article:publisher":"https:\/\/www.facebook.com\/storybench\/","twitter:card":"summary_large_image","twitter:site":"@storybench","twitter:title":"How to create your first choropleth map in Mapbox - Storybench","twitter:description":"Few things grab a reader's attention quite like a map. While bar and line charts have their place in data visualization, a choropleth map is a great option if you\u2019re looking to do something a little more sophisticated. For static maps, free tools like QGIS work well, but if you want to add interactivity and","twitter:creator":"@storybench","twitter:image":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png"},"aioseo_meta_data":{"post_id":"22985","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"Mapbox","score":74,"analysis":{"keyphraseInTitle":{"score":9,"maxScore":9,"error":0},"keyphraseInDescription":{"score":9,"maxScore":9,"error":0},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":1},"keyphraseInURL":{"score":5,"maxScore":5,"error":0},"keyphraseInIntroduction":{"score":3,"maxScore":9,"error":1},"keyphraseInSubHeadings":{"score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":{"score":3,"maxScore":9,"error":1},"keywordDensity":{"type":"best","score":9,"maxScore":9,"error":0}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2024-10-22 17:40:24","updated":"2026-07-09 16:31:44","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.storybench.org\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.storybench.org\/category\/tutorials\/\" title=\"Tutorials\">Tutorials<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHow to create your first choropleth map in Mapbox\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.storybench.org"},{"label":"Tutorials","link":"https:\/\/www.storybench.org\/category\/tutorials\/"},{"label":"How to create your first choropleth map in Mapbox","link":"https:\/\/www.storybench.org\/how-to-create-your-first-choropleth-map-in-mapbox\/"}],"jetpack_featured_media_url":"https:\/\/www.storybench.org\/wp-content\/uploads\/2024\/10\/SS-Hero.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/posts\/22985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/users\/458"}],"replies":[{"embeddable":true,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/comments?post=22985"}],"version-history":[{"count":1,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/posts\/22985\/revisions"}],"predecessor-version":[{"id":26630,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/posts\/22985\/revisions\/26630"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/media\/22993"}],"wp:attachment":[{"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/media?parent=22985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/categories?post=22985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.storybench.org\/wp-json\/wp\/v2\/tags?post=22985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}