Great Britain has voted to leave the E.U., and election result cartograms are all over the internet. However, for our map we decided to stick with a simple map instead.
This is a transcript of my lightning talk at NICAR 2015 yesterday.
Please give the animated GIFs some time to load :)
Charting tools are great.
They let us create charts and visualizations without writing code, and in a fraction of the time it would take to do in tools like Adobe Illustrator.
Using open source tools it is now super easy to make your own map tiles, and with a little extra work you can render them in whatever map projection you want. No more excuses to use Mercator! For example, here is a map we published today at The Upshot. It shows where prime-age women are working more or less then average, and includes data from county-level in the overview map down to every census tract once you zoom in. And all is nicely projected in Albers Equal-Area Conic, a projection widely adopted as standard for U.S. maps.
Never trust a statistic that you
haven’t visualized yourself.
It’s election time in Germany and, as usual, there are tons of opinion polls telling us who is going to win the election anyway. It is debatable whether or not pre-election polls are healthy for our democracy in general, but at least everybody agrees that the polls should be kind of neutral. And if they are not, the institutes publishing the polls should be blamed publicly.
But how do we know if an institute publishes ‘biased’ polls? You guessed it: with data. More precisely: with data and the unique power of data visualization.
Let’s face it. Relational databases, such as MySQL, SQLite and PostgreSQL, are pretty cool – but nobody actually uses them. At least not in the day-to-day work with small to medium scale datasets. But why is that? Why do we see an awful lot of data stored in static files in CSV or JSON format, even though
- they are hard to query (you need to write a custom script every time)
- they are messy, as they cannot store meta data such as data types
- it is a pain to update them incrementally, say if some record has changed
You can do this using the
colorRampPalette() function that comes with the grDevices package. Calling this function will return another function that you can call to generate the color palette.
If I was asked for the golden rule of information visualization, it would be:
“Show the most important thing first!”
Not second or third, but first! And what is the most important thing to show about the outcome of an election? Who actually won.
In political systems like Germany’s, where we have no party getting anywhere near 50% of the vote, the usual one-bar-per-party bar charts totally fail to answer this most important question.
For example, in the following chart we can see the number of seats won by different political parties – but this does not tell us who won the election.
While working on the soon-to-be-released map widget for Piwik (heck, it’s been over two years since the first sketches!) I implemented two map symbol clustering algorithms into Kartograph.js. Last year I wrote about why this is a good idea, and now I turned that advice into re-usable code.
In this post I want to share my findings after experimenting with different clustering techniques.