This project grew out of having a lot of time on my hands at work, being on the bench as a newly-minted consultant eagerly awaiting being put on my first client project. True to form, I'm writing this blog post belatedly, so I am now a bit fuzzy on the early details since it was about 8 months and 2 jobs ago, but I'll do my best to recount what probably happened.
In my boredom, as I got to thinking about what I might like to visualize, there was probably some recent occurrence of being out and about with my husband during which he commented that a certain house or town was "too far from the nearest Taco Bell." This is a regular occurrence for him/us, so it stands to reason that this was the inspiration. I managed to find an open data set with the locations of all Taco Bell restaurants in the United States and Canada on the handy-dandy site, POI Factory, and lo and behold they also had a handful of other restaurant data sets available with the same schema (data structure, like the same columns - this is super helpful when merging data sets together!) so I downloaded all of them.
The next step was to dump all of these files into Tableau Prep Builder to union them together and clean up some of the fields. I undoubtedly spent way more time on this step than I really needed to, because I wound up only using the lat/long fields, and then included the address string in the tooltip, but hey I was bored.
After Tableau Prep, I then dusted off my janky Python skills to create the circles you see in the map, as GEOJSON polygons. (For those not in the know, GEOJSON is JSON specifically for spatial data, and JSON is a file structure which uses nested key-value pairs to efficiently store tons of data.) I painstakingly did the calculations to convert degrees latitude and longitude to miles, and then implemented a function that would draw circles with the various radii I specified around each point. I had trouble getting Python to loop through the radii and also loop through all the points, so I wound up just making a separate GEOJSON file for each radius value and unioned them together in Tableau. Months after I finished this little project, I attended Tableau Conference 2022 and learned that there are two functions in Tableau that would have made my week of Python work into 2 very simple calculations: MAKEPOINT() to make a point out of the lat/long pair, and BUFFER to generate the circles of varying radius, in miles, around my points. Oh well, hooray for learning!
And so, after a bunch of coding and data cleanup, I was finally able to jump into Tableau and start visualizing. For each restaurant, I assigned it a main color from its logo - here I remembered that many restaurants use red in their branding (check out this study from the University of New Hampshire to read about the phenomenon), so I had to dig especially deep in the case of Wendy's, but I paired the bar with the restaurant logos as a legend so it would work well enough. Here's what I came up with and published originally:
I made the header image in Figma, with the little confetti matching the colors of the bars. I'm a huge fan of the symmetry of butterfly charts, so I included essentially two of them below the map, one as a pair of lollipop charts separated by the center content, and one vertically.
Riding the high of a completed project, I was congratulating myself of a job well done until I got some feedback from a viz guru I admire. My friend told me to think about balance across the visualization as a whole: horizontally as well as vertically on the whole page. He said the bottom was very "heavy" and the title design was a little bit jarring. Among other ideas, he suggested making the map expandable / controls hideable, and also to use a scatter plot instead of the two very tall lollipop charts.
This was all well and good and of course he was totally right, but by that time I'd started on a project and didn't have time to implement any of the ideas he'd given me, so my notes waited forlornly on a white board until about a month ago when I found myself back on the bench with some time to kill.
The resulting viz is a good bit shorter (as in less tall), and the scatterplot seemed to be well-received by the folks to whom I've shown the new draft. The bars with the restaurant logos work much better side-by-side instead of one atop the other, and I was able to put the controls and text in a collapsible container to make the map expandable. Overall I'm really happy with how it turned out, and I hope you enjoy it as well!