Interactive Scatterplots of Census Data Using ggvis

Today I finished two projects that had been on my mind for a while:

  1. Try out ggvis, the interactive successor to ggplot2
  2. Create interactive scatterplots of census data

You can see the resulting shiny app here. The app lets you create a scatterplot of any pair of demographic variables that ship with the choroplethr package. When you roll over a point, it tells you where it is. It also adds a trend line.

Here are some examples. Note that while the graphics in the app are interactive, these images are static.

State Race vs. Age

As states get whiter, they also get older:

state-white-vs-age

County Age vs. Income

As counties get older, they also get wealthier:

county-age-income

ZIP Race vs. Age

As ZIP Codes (ZCTAs) get more hispanic, they tend to get younger:

zip-hispanic-age

Here are some fun facts I learned from the app:

  • Vermont and Maine are the oldest and whitest states
  • Sumter County, Florida is the oldest county, with a median age of almost 65
  • Manhattan (technically New York County in New York State) has the highest per capita income

After spending some time with the app I now have a lot less confidence in the ZIP data than I used to – too many ZIPs have a median age below 10 or over 90. Presumably that could be addressed by looking at the error bars of the underlying data (a major purpose of the acs package). That just wasn’t the purpose of this project.

The code for the app is available here.

If you see any interesting correlations or outliers, please comment below! I’m also interested in learning about more options for interactive graphics in R. If you know of other libraries for doing similar work, please also leave a comment as well.

2 comments
Toby Dylan Hocking says October 19, 2015

Hey Ari interesting data viz. You may also find https://github.com/tdhock/animint useful. It outputs interactive linked plots but uses regular ggplot2 syntax.

    Ari Lamstein says October 19, 2015

    That’s great! I’m surprised that I never heard of that package. Is it also on CRAN?

Comments are closed