Gabriel Florit

Jan. 9, 2014

Snow totals in Mass., Northeast

Dec. 15, 2013

The Fall of the House of Tsarnaev

Dec. 11, 2013

US House district 5 general election results

Oct. 5, 2013

Factors considered in an arbitration award

Sep. 26, 2013

Votes up for grabs

Sep. 24, 2013

Mayoral race: results

Sep. 24, 2013

Mayoral race turnout

Sep. 20, 2013

Campaign donations, block by block

Sep. 6, 2013

A look at mayoral race campaign donations

Sep. 3, 2013

A year of complaints

Aug. 9, 2013

Homicides in Boston

July 17, 2013

Obama's Vineyard

June 25, 2013

Special Senate election: results

June 2, 2013

Analyzing ticks, town by town

May 19, 2013

A quarter-century of the Globe 100

May 12, 2013

Three metal railings: the Boston Marathon memorial

April 18, 2013

Boston Marathon bombings: your story

April 15, 2013

How the Boston Marathon bombings unfolded

April 15, 2013

Marathon tracker

April 1, 2013

Evolution of a tycoon

Feb. 12, 2013

State of the Union addresses - a quiz

Feb. 8, 2013

Measuring the snowfall in the Northeast

Jan. 30, 2013

'Women' a central theme in Menino's speech

Jan. 23, 2013

Inaugural language

Dec. 20, 2012

Growing up in Bowdoin-Geneva

Dec. 17, 2012

Bowdoin-Geneva racial distribution

Oct. 26, 2012

Hurricane Sandy wind gust speed predictions

Oct. 3, 2012

Terms of engagement

Sep. 24, 2012

Overhauling the school assignment system

Sep. 9, 2012

How much water is in your scallop?

Sep. 7, 2012

Obama stayed on-script at DNC

Sep. 6, 2012

Much of Clinton's DNC speech was improvised

Mar. 16, 2012

Live coding in d3

Bret Victor is a genius. His recent CUSEC 2012 talk, Inventing on Principle, is one of the best talks I've ever seen. If you watch only one talk this year, make sure it's this one.

I was blown away by his 'live coding' idea, but couldn't find any actual live examples, so I put together a quick demo using d3 and Ace. I 100% totally based it on Bret's idea - down to the clever book styling. Imitation is the sincerest... etc etc.

The default code is Mike Bostock's beautiful chord diagram, tweaked to fit the Twilight theme. And remember, click the pulsing red numbers and hold down the alt key!

Dec. 31, 2011

A half-decade of rising poverty

I put together a more polished version of my previous work on mapping poverty by county, adding a bit more interactivity including a sparkline showing historical poverty rate change. The continuous scale does a great job of highlighting spatial patterns.

Dec. 14, 2011

Choropleth classification systems

Data classification is a critical component of choropleths. The number of classes and our choice of classification system can turn the same data into seemingly different maps. I'll illustrate with a number of examples - of maps, of course. We'll look at total percentage of people living in poverty by county (data courtesy of the U.S. Census Bureau).

Equal intervals

Let's start with equal intervals. In this classification system, the entire range of values is divided equally into the desired number of intervals.

4 equal intervals:

8 equal intervals:


Now let's switch to quantiles. Here, each class is of equal size - each class has the same number of values.

4 quantiles (also known as quartiles):

8 quantiles:

k-means clusters

Finally we'll look at k-means clusters. This classification system creates classes of values such that the sum of the squared distance from each value to the center of its respective class is minimized.

4 classes:

8 classes:

If you're still reading, my apologies if you've had enough blue maps for a day. Now, which one do you prefer? Remember, they all show the same data - the only change is the way the data is broken up into classes. I chose equal intervals, quantiles and k-means clustering because they're fairly popular classification systems amongst cartographers.

Continuous classes

I have one more map to show you:

There is no grouping of values here. Instead, a continuous input domain (the data points, ranging from 0% to 62%) is mapped to a continuous output range (in this case, a color map of bluish hue). This is also equivalent to choosing equal intervals and increasing the number of classes to infinity.

I prefer this type of classification system for this particular data set - we have many data points (3,143 counties), most of them exhibiting regular spatial patterns. However, if you have a small number of data points, need a print-friendly map, or are concerned about accessibility, you're probably better off choosing a map with fewer number of classes, ideally between 4 and 7.