Tom MacWright

Hi, I'm Tom MacWright, a software developer who works at Development Seed, writes fun code, and occasionally makes music.

My email address is my last name, at gmail.

notes / twitter / github / flickr / band / uke / drupal

Maps – On Removing Dimensions

To cut to the chase: map visualization sucks because maps leave designers with only one true degree on which to play. Map designers are further handicapped by the prevalence of accurate distance and direction, when these properties are not always the most important.

Thinking about designing new kinds of charts with maps as a substrate initially seems awesome – the data and tools are becoming exponentially more developed and accessible, so it seems straightforward to mix and match until your map is perfectly complete and interactive.

But there is one obvious reason, which, hopefully, is in everyone’s mind: maps occupy two dimensions. A pure terrain map of a country contains two dimensions of direction and one ‘dimension’ of color, which represents the altitude of a tiny point of land.

Adding anything more to a map is inherently a compromise of information and readability.

Here’s one way to sidestep these concerns: throw away a dimension. Here I’m doing a crime map, one of the most controversially loved types of visualization. And, thanks to the fantastic DC Data Catalog getting the data is a snap.

But, the compromise: I’ll abandon all details of the actual, geographic city, and instead take advantage of the constructed city; the grid plan of DC. What I’ve done is really generally a proof-of-concept rather than any marketable technology, but I think that a few details are important.

The first is that, by eliminating ties to a latitude/longitude-ruled map, one can adjust the map resolution to the units that matter. Crimes are reported by police on a block basis, and due to zoning, housing arrangements, and police coverage, blocks are often the atomic unit of variation.

The second is that one of the most important aspects of good data is preserved: comparison. My pet peeve with maps that splay bar graphs and traditional charts across terrain and surface features is that they display the worst possible instances of distorted scale and destroy any possibility of cross-point comparison. My implementation is far from perfect, but it is quite possible to see that, across a 1100 block and a 1200 block, both blocks had high crime in the summer or winter.

The code to make this work is tiny, so you can grab it below – and, in my opinion, it contains a minimum of trickery. The only thing that I found kind of useful is the technique of creating GUIDs for media which is statically generated and returning those from the generator method.

blog comments powered by Disqus