Guide to Creating Hexagonal Shot Maps in Tableau
Disclaimer: A lot of the content in here is already discussed in Swaminathan Nanda-Kishore’s guide to creating shot maps. I’ll just be dealing with the changes you need to make to turn that into a hexagonal shot map. Additionally, advice on how to obtain shot data from Understat can also be found on his Medium page, so I’ll be skipping that part as well. Preferably check those pieces out before reading this, they’ll be super useful.
If you already know how to get your data and know how to make a regular shot map, then read on.
In this example, I’m going to plot all of Erling Haaland’s shots for Borussia Dortmund.
First, create two new parameters, named Scale X and Scale Y, by clicking on the arrow in the left-hand side menu.

You should have something that looks like this:

Just rename the parameters to Scale X and Scale Y. Leave the values at their default for now.
Now create two new calculated fields, the same way as the parameters. Name them Hex X and Hex Y.

Under the calculation for the respective fields enter the following formulas:
Hex X: HEXBINX([X]*120*[Scale X],[Y]*80*[Scale Y])/[Scale X]
Hex Y: HEXBINY([X]*120*[Scale X],[Y]*80*[Scale Y])/[Scale Y]
That’s it for the calculation part! Now to put the graphic together.
Drag Hex X onto columns and Hex Y onto rows. Change the mark type to ‘shape’, and change it to a hexagon. You can just download the following image:

IMPORTANT: Because you’re using a custom shape here, you’ll need to move this image into the Shapes folder to use in Tableau, which you can find on your computer by going to Documents > My Tableau Repository > Shapes. Then, when you change the shape, select the ‘custom’ option in the shape palette dropdown menu.

Add in a pitch template as a background map, which you can download here. After doing that, adjusting the axes, switching the rows and columns and removing all the grid lines, you will have to play around with the mark size, as well as adjust the scale parameters, to make sure the hexagon shapes fit together just right.
(Follow the guide I referenced earlier on how to add the pitch/adjust the axes, etc.)
You should end up with something like this:

Now, drag the “count” measure onto the colour pill, and select whatever colour scheme you want. This will give the viewer information on the frequency of shots from each location, just by looking at the colour.
Add your sheet into a dashboard, play around with the cosmetics if you want, maybe add in a club badge, or a player’s photo, or any other data you might want to include. The basic version should look like this:

And that’s it! Simple as that.
If you try this out and have any issues, feel free to comment, or reach out to me on Twitter (@RahulIyer32).