I built a few static visualization of Wisconsin results for my last post, but it seemed like making an interactive one could help explain trends over time better. To see the results, click through each of the years using the arrows in the lower left corner. You can also consider “what-if” scenarios by clicking and dragging the counties. For example, you can see how the election would have changed if turnout was 8% higher or the Democrat’s margin was 3% larger in Milwaukee County.

This visualization was built with D3.js, and the code is available here, and a full page version is available here.

A Few Notes

  • There seems to be a large increase in turnout from 2000-2004.
  • Smaller rural counties are more erratic, swinging towards Obama in 2008, then back to Trump in 2016.
  • Strong conservative counties like Waukesha actually shifted towards Democrats in 2016, suggesting a clash between establishment conservatism and Trump’s campaign.
  • Milwaukee County had a 8% drop in turnout from 2012-2016, probably costing Clinton the state (Take a look at the end of my previous post looking at the potential effects of the Voter ID law on this drop. The takeaway is that Voter ID could have swung the election in this state).


  • I assume increases in turnout are apportioned based on the fraction of each county that voted for each party initially.
  • Changes in margin are zero sum. Any increase in the Democrat’s vote total comes from Republican voters switching sides, not from third party candidates.

Next Steps

I think it would be cool to make this graphic with the results from every county in the US, and allow filtering by state. I could also include the electoral college count, so people could see how changes in a few large counties could affect the results. The rest of the data is available at David Leip’s Election Atlas site, but it’s behind a paywall so I won’t do this next step for now.

Aggregating all of this data clearly takes a lot of work, but I’m surprised the government doesn’t do the aggregating and make it publicly available for free. Something as important as a presidential election should have all the ward-level data available so the public can analyze it in real time to look for anomalies. Right now, the only option seems to be to get access to the incredibly expensive AP elections API, or wait a few days and pay for the Election Atlas data at the county level as it becomes available.