How to create an arrow map
Arrow maps, also known as swing maps or hedgehog maps, are a subtype of symbol maps in Datawrapper. They're a good choice when your data shows the direction and size of a change, such as:
- “Swing” between two opposing categories, like support for political parties (especially in a two-party system like the United States)
- Geographic distribution of increase and decrease in some key metric, like population or housing prices.
This article explains how to create an arrow map in Datawrapper. We'll use the following map as an examples that visualizes the difference in population in Texas between 2020 and 2023.
Select your map
Arrow maps are a subtype of symbol maps, so when you create a new map in Datawrapper ( e.g. by clicking here), choose to create a Symbol map.
Once you've done so, Datawrapper will ask you "What type of map do you want to create?" in step 1: Select a map. Even if you know that you want a map of Texas, you can still decide between different levels, e.g. census tracts, counties, district courts, or congressional districts. You can also upload your own map, with instructions on how to do so in the article How to upload your own map.
We search for a map of "Texas" and then select the "USA » Texas » Counties" map before clicking on Proceed.
Add your data
In step 2: Add your data, you can do just that. You can upload your data as a CSV or Excel file, paste your data in the Copy & Paste field, or connect to a remote data set. To learn more about the last option and live data sets, visit this page here.
Each row in your data set sets one arrow. You need at least one column with regions/addresses, and at least one column with numbers – but you can upload as many column as you like to play around with your data or to use that data in your tooltips.
We will paste our data (1) and then click on the arrow next to it (2):
To let Datawrapper know where it should place your arrows, you have three options:
👉 Upload regions that Datawrapper recognizes
Most arrow maps show an arrow for each region (e.g. county, district, etc.). You can upload the region, and Datawrapper will automatically recognise it in most cases.
Check the column header to make sure that the "Adress/Place" is the one you want Datawrapper to recognize. If that's not the case, go to the Match tab, then "select the column with addresses or place names". (You can also click on the column header and set your check mark at "Use column" for "Address/Place".) In our case, we want Datawrapper to recognize the regions based on the FIPS codes instead of the county names:
Once we click on on Generate coordinates, the center coordinates for all these regions will show up at once:
In case your regions/addresses are not recognized, you can check which ones Datawrapper knows by creating a choropleth map with the same map, going through the "Match" tab and then clicking on "Select column for Name".
👉 Upload geo coordinates (lat and lon)
If you have the latitude and longitude, you can simply upload them directly in your data set.
👉 Let Datawrapper generate coordinates based on addresses
If you upload regions, but also city names and specific addresses, Datawrapper can generate coordinates (latitude and longitude) for you. Simply click on the Generate coordinates button after setting your Address column as described above. This takes quite some time and hence can be impractical for big data sets. It's also less accurate then the first two options, so consider using them instead.
Once you're done, click on Proceed at the bottom to go to step 3: Visualize.
Choose an arrow map & style it
You've uploaded your data? Great! Now it's time to actually visualize the data. In step 3, choose Arrow below Shape and size, then choose which number column your arrows should visualize (if you've uploaded multiple
Well, this looks great already. As you can see, Datawrapper assigns your positive and negative values to distinctly colored categories, representing them as arrows pointing in different directions.
You can now play around with the settings:
- Max length defines how long your arrows should be. They should be long enough so that most of them are visible, but short enough to not overlap too many other arrows or regions. In case the arrows stick out of your map to the left or right, you can give your map some additional padding with the settings at the bottom of the Refine tab.
- Arrow directions: You can have your arrows pointing left and right, or up and down. Up and down arrows are a great choice for visualizing increases and decreases; left and right arrows make sense for contrasting two categories (like Republicans and Democrats).
- Angle: You can choose between 0 and 90 degree angles for all your arrows. Depending on the number of arrows, the data, and the statement you want to make with it, different angles can make sense. For population increase or decrease, you might want to consider pointing your arrows 0 degree up and down. For "right and left shifts", a 90 degree angle can make sense. Most maps use an angle in between for best readability.
- Reduce size on smaller screens will make your arrows smaller on mobile screens. Use the preview options below the map to check if that could make sense for your map.
Change the colors of the arrows
Below, you can change the negative and positive colors for the arrows. Click on the color to change it, then click on the little checkmark to confirm it.
You can also open the advanced color options that let you change the fill opacity, show outlines around the arrows, or multiply the colors of overlapping arrows.
Style your legend
To let your readers know what your arrows indicate, you now have the option to style your legend.
You can move the legend around:
- Legend position lets you move your legend to above or below the visualization, or to the top left, center, right or bottom left, center, or right inside the visualization
- Offset lets you move the legend a bit more inside, vertically and horizontally.
You can also label the legend as needed:
- Color labels for the negative and positive values position let you add an explanation for all upwards and for all downwards pointing arrows that will be shown above them.
- Values let you customize which numbers you want to see below the arrows. You can choose one of our number formats or customize it.
- Legend title: If you choose to show the title, you can type in a custom one and set the Title position to above, left, right, or below the legend. For long titles, you can adjust the Title max width to make your legend look nicer.
Finally, turning on Enable highlight by color on hover enables readers to hover over the legend to only see the arrows with the respective color highlighted:
Make more map adjustments and publish
If you look around the Refine and Annotate tab, you'll find many more settings. You can
- make your map zoomable
- add an inset map or globe
- add map labels and annotations
- add a title, description, byline, and source.
We explain all of them in our symbol map article. Click here to jump right where this article left off.