Each Sunday Andy Kriebel (VizWiz) and Andy Cotgreave (Gravy Anecdote) post a link to a chart, a file with the underlying data. Then people build makeovers and share them over twitter and pinterest. Find more info here.
This week’s makeover is all about ships! Like most bubble charts, it’s hard to compare bubbles on the original visual. I can see that there’s a pretty steep drop between the third and fourth largest companies, and that the largest is about four or five times as large as the smallest, but that’s about it. I don’t like that color and bubble size were (presumably) used to show the same measure. A bar chart would make the sizes easier to compare, take less space, and allow the smaller companies to have labels. However, I’m more interested in the units used in this week’s chart. How big are these shipping capacities? Could they cover a local park, your hometown, or Rhode Island in shipping containers?
Each TEU (Twenty foot Equivalent Unit) represents a 8X20ft shipping container. Therefore one TEU = 160 sq ft which can then be converted into square miles. My plan was to create a map overlaid with boxes representing the shipping capacity of each operator. The map would be interactive, allowing users to scroll and zoom to compare the shipping capacity to familiar geographic areas.
I created a calculated field to convert TEU to square miles.
I created a map with non-geographic data by using parameters.
Then everything fell apart.
I tried using a shapes mark on the map to show my shipping capacities, but Tableau can’t tie the square miles from the calculation to the square miles on the map underneath it. The shapes don’t scale at all. They don’t respond to the map; the same box could fit inside the Alamo and then cover Texas if you start zooming out. Even worse, the largest box is always the same size. If you filter the largest operator, the second largest will take over the biggest box without changing size.
Next I tried using a filled map. This requires adding geolocation data to the dataset – easy enough, just add some fake longitude and latitude columns to the data set. Getting the points to cover x miles is much harder. Some users on the Tableau Community forums have figured it out, but the method uses custom geocoding (beyond my ken), and parameters (not unique values for each point). Even if we figured out the radius issues, the user would still be tied to a fixed center point. This limits their exploration of the map, which was the goal of the viz.
In the end I used the first method, and then carefully calibrated the zoom by calculating the side of the largest square, finding a line roughly that distance along the coast, and then zooming them into rough alignment. This viz obviously doesn’t work the way it should, but if you keep Mersk in your filter, and don’t change the scale of the map, then you might be able to explore New York. Alternatively, you could find an interesting place and then calibrate the zoom yourself by using the square root of the largest area and the nifty distance measure tool on google maps. The zoom issue also forced me to set a fixed size, so you’ll want to view this one from a regular monitor if possible!
Check it out on Tableau Public.
(I’m planning to insert future Tableau creations into the post, but this theme isn’t working with me right now!)