I love binning things up into hexagons. So much cooler looking than image heatmaps, and you can interact with them. More complex than squares, so you get some geometric variability in your surface, but just compact enough so that the shape isn’t distracting.
Things I like: hexagonally tesselated manhole covers. pic.twitter.com/QwvqZu6vMM — John Nelson (@John_M_Nelson) August 1, 2016
But sometimes, I look at my hexagonal maps and I see whole hexagons that appear bright and dense because a lot of data just happened to skirt the edge of it. And I wish it could nudge it one way or the other. I’d like to paint a little nuance into the hexagon.
If I love hexagons, might I love double hexagons twice as much? I don’t know for sure, but my heart wants to say yes.
So I took a plane of hexagons (arbitrarily 5,000 square miles each), duplicated them, and slid them down. Then I made a cookie-cutter intersection of the two, to make an intriguing diamond burst component hexagonal tessellation. You read that right.
Now then, to try it out. What data to aggregate up into these bins? I emailed Yusuke Hasegawa, and asked him if he still had that old CSV of Chipotle locations laying around. He did:
Here is what all those Chipotles look like binned up into vanilla hexagons. Nice, standard, hex map:
And here they are binned up into the new split-hex shapes (the aforementioned diamond burst component hexagonal tessellation). Interesting! I get more geographic precision out of these shapes, and there is a bit of a spatial benefit to the meandering direction of the shapes. Sometimes it can be a benefit to bin with shapes of varying orientation, but in this case I think the effect is too sharp and a little distracting:
So what about a hybrid approach? In this map, I’ve pulled the original hex bins back in, but I’ve added the split-hex diamonds over top. Now you get the benefit of seeing patterns and clusters via the gentle hexagon, but a little bit of nuance is painted within them:
Here’s another look. This time with the Chipotle locations turned back on for reference. I like how the overall density shows via the hex cells. But where there are more Chipotles on one side or another, that corner of the cell glows brighter (click to embiggen):
While puttering around with this, I emailed Daniel Huffman, who has dabbled in Penrose binning (a similar diamondish tessellation). In addition to his valuable insights (some of which I have liberally stolen, above), he suggested maybe I try painting values into the diamonds by their border weight. Since this whole thing is about trying things out, I tried it out:
Offset Hex Binning
Maybe instead of splitting the hexagons into their component diamonds, it might be a helpful (and easier) effect to leave the two versions of the hexagons pristine, and bin/render them on top of each other. The result would be a blurry teaming up of hexagons that might allow me to use a finer mesh with the benefits of a courser mesh.
This was the reason I tried a split-hex tessellation in the first place. It may be fun (and superfluous/distracting) to use the split-hexes as a cube shading method, on top of binned hexes. Just to create a dumb cube aesthetic. ¯\_(ツ)_/¯
I would show you how it looks over the map, but unfortunately I got the offset wrong so my cubes look upside-down. ¯\_(ツ)_/¯
Here is a small section of the cube fail, submitted with embarrassment:
If you’d like to play with these hexagons and their little diamond love children, you can play with them online or download them here.
I used ArcGIS Pro to create the original hexagonal tessellation, rotate them the cool way (pointy ends going up and down), duplicate them, slide them down half a cell, and intersect them to create the split-hex diamond tessellation. Also to make these maps.
*Fun fact. The distinctive TIE Fighter sound was created by combining the roar of an elephant with that of tires driving over wet pavement.
Happy mapping! John