How to create a symbol map

Symbol maps are maps on which data about specific locations (e.g. cities) is represented with geometric shapes (e.g. circles).

These kinds of maps shouldn't be used if you want to show data about  areas, like the population of all countries or the criminality rate in all Chicago neighborhoods. Choropleth maps are the better choice for that, and we show you how to build them here. But symbol maps are great if you want to show the data for specific geometric locations, e.g. to show all McDonald's restaurants in the US, all UFO sightings worldwide, or the location of National Parks. 

We'll show you how to build a symbol map based on population data for the biggest US cities:


Choosing a map

The first question that Datawrapper will ask you after you've decided to use a symbol map is: "What type of map do you want to create?" Even if you know that you want a US map, you can still decide between different levels, e.g. states, counties, district courts, or congressional districts. We want a US state map as a background for our population circles to give the reader some orientation. So we'll search for "USA", click on "USA » States" and then click "Next" (You can also upload your own map, with instructions on how to do so in the article How to upload your own map).


Preparing the data

👉 Plot your data using addresses

Before we can visualize the unemployment rates, we need to bring it in the right format. Datawrapper will need  addresses or latitudes/longitudes to know where you want your points to be. For our map of US cities, the city names will serve as addresses. Datawrapper will map them automatically (that's called "geocoding"). For more information on geocoding using place names, see this article.

If you want to represent data with the size or color of circles (or other geometric shapes), you also need to prepare a column with data values. On our map, the size of the circles is determined by population numbers, and the color of the circles represents the change since 2010. So we need at least two more columns for population and change. Our table looks like this now: 

city population 2016 change to 2010
New York 8537673 4.43
Detroit 672795 -5.74
Chicago 2704958
etc. etc.  etc.

👉 Plot your data using lat/lon coordinates

You can also import latitudes and longitudes. Datawrapper accepts decimal coordinates (e.g. 40.6635, -73.9387 instead of 40° 39′ 48.6″ N, 73° 56′ 19.32″ W for New York City). You will need one column for latitudes and one column for longitudes. That's how our data looks like when we add the two columns:

lat long city population 2016 change to 2010  
40.6635 -73.9387 New York 8537673 4.43  
42.383 -83.1022 Detroit 672795 -5.74  
41.8376 -87.6818 Chicago 2704958 0.35  
etc. etc. etc. etc.  etc.

👉 Choose lat/lon coordinates for better precision and accuracy

Why should you upload latitudes and longitudes when Datawrapper can just transform our city names into points on the map? Because the names of cities (or any other places) might exist more than once or might be written differently in different languages. 

For example, there are multiple Vancouver's around the globe. If you give a geocoder (like Google Maps or Datawrapper) "Vancouver" as an address, it will assume that you mean the biggest Vancouver, which happens to be in Canada. But the "Vancouver" in our table actually refers to the Vancouver in Washington state. When using city names as addresses, Datawrapper will map Vancouver in Canada. When using latitudes and longitudes, our Vancouver appears (correctly) in Washington. With latitudes and longitudes, you can be sure that Datawrapper maps the exact points you want to appear on your map. To learn more about this topic, visit our Academy article "Symbol location accuracy using addresses/place names"


Add your data

You've prepared your data? Great! Now there are four ways to import your table with names/ID and values:

  1. Search for a specific location. This takes a long time, so this works best for maps with only a few symbols. 
  2. Upload a CSV or Excel file. To do so, click on Upload file.
  3. Copy & paste your data from a spreadsheet. E.g. from Excel or Google Sheets. This is the most convenient option for lots of our users.
  4. Connect a remote data set
    • Link external data. That's the best option if your data keeps updating (e.g. election results during election night), and you want your embedded map to always show the latest numbers. To learn more about creating live-updating visualizations, visit this page here
    • Connect Google Sheet. That's a good option if you or a coworker is changing the data by hand a lot and you want to make sure that your map shows the latest numbers when visualizing it. 

      To learn more about the difference between the above two options, see here

Match & check the data

Match tab

Once you upload your data, the next step is to match your data with the map. 

If your dataset contains addresses, make sure that the column including the addresses is selected. Click on Generate coordinates or Get all coordinates button to generate Lat and Lon coordinates from these addresses. 

If your dataset contains coordinates, make sure to select the correct columns for the latitude and longitude: 

You can also check whether the correct columns are selected by looking at the column headers: 

Check tab

If there are any errors in the data, you can check and correct them from the Check tab: 


That's it!

If you successfully imported and matched the data, click on Proceed to go to step 3: Visualize. Here you can tweak the colors, title, map key, zoom buttons etc. We will cover this part in the next tutorial: Customizing your symbol map.