Plotting the Wisconsin Gerrymander

Plotting the Wisconsin Gerrymander


Last week, University of Wisconsin-Madison political science professor Barry Burden tweeted the graph shown at left; it summarizes the 2018 Wisconsin State Assembly election results.

Here’s his message:

“In other Wisconsin news today, the state posted the official 2018 Assembly election results. It's a beautiful gerrymander. Dems got 190,000 more votes [state-wide] but Reps got 63/99 seats. Key is assuring many GOP districts get just over 50% of vote even in a bad year for the party.”

According to the display, Democrats won many more districts with 0% votes going to the Republicans than vice-versa.

Even in very partisan assembly districts, how could one party receive exactly zero votes? 

It turns out the points at 0 or 100 in Professor Burden’s plot correspond to districts in which one of the major two parties did not run a candidate.  Diving into the data, there are seven districts in which Democrats did not put up a candidate; for Republicans, the “don’t bother” count is 29.

Here’s a dot-plot that shows the winning percentage for each Assembly district in descending order and grouped by major party.   No minor party candidates won any Assembly seat in 2018 so we need to only account for Democrats and Republicans in labeling winners.


*In District 73, a Republican write-in candidate received 16 votes out of a total 19,094 votes cast. All the other districts in which the winning candidate received more than 94% of the vote had no opponent running on a party line.

The dotplot makes it easy to see:  Most of the Democrats ran unopposed while most of the Republicans had contested seats.   The key to effective gerrymandering is to pack your opponent’s voters into a small number of districts that you don’t contest and distribute your own voters across many districts that you can win by relatively small margins.

More Details

District 95 shows the Democrat winning 100% of the votes; there were no votes going to any candidate either with a party affiliation or as a write-in.

In District 82, the Republican ran against a Libertarian candidate and won with 68% of the vote; Democrats had no candidate.

There are additional minor differences between the data displayed in Professor Burden’s plot and my plot; I account for votes for Libertarian, Constitutional, Independent and write-in candidates in calculating winning percentages.

Data Source and R Script

Election records obtained from /results; scroll to find the Excel file Ward by Ward Report-Gen Election-Assembly.xlsx.   The Excel file and my R script to produce the dotplot may be found on GitHub.

Process Perfection

Process Perfection

Reminder from an early generation of big data

Reminder from an early generation of big data