I have always been frustrated by how difficult it is to show two measures on maps. Most often it results in overplotting or marks that are so tiny you can’t really see them well. A good solution, in my opinion, is to overlay two hexmaps in a dual axis, one with empty hexagon shapes as a contour and another one with filled hexagon shapes as the inside. You can then play with the size of the inside shapes and the colour of the outer ones for example.

Inspired by this cool viz by Jacob Olsufka, I had already used the technique in the past but didn’t think about blogging about it until last week. I used it again for one of the dashboard week challenges and Robbin had asked me about it so I thought I’d write a step by step blog post. Most of the times we find hexmaps used for the US, because they help minimizing the effect of Alaska and Hawaii. But you can do it for any country really since it is essentially just a scatter plot which coordinates place each elements on the chart. For the sake of simplicity we will use US as an example with the superstore data, you can find the hexmap data ready here available for download.

  1. Join your data

Simple as pie, just join on states, that way you will have coordinates for each state so it can be placed on the view. Just place them accordingly on the shelves to map the US.

2. Get the shapes

I use two different shapes with dual-axis to create my view. An empty hexagon with borders, and a filled one. Because I’m super nice I give them away to you.



3. Build your view

Create an awesome viz! Just for a quick example I have plotted below the number of orders and the overall profitability of each state within the superstore data.