Tableau to the rescue! How to improve Sunlight Foundation’s scatterplot showing that Congress speaks like Juveniles

On June 4th, Stephen Colbert started off his show by discussing a report by the Sunlight Foundation.

The Colbert Report


The report showed that Congress is getting dumber. Ok, that’s not exactly what the report showed, it showed that the speech levels of Congress have been declining since 2005. The Sunlight Foundation’s analysis of Congressional speech included this interesting scatterplot,

Ideology and grade level for Congress

Ideology and grade level for congress

This scatterplot does a few things well. First, it shows us the data. Every point is a current representative. Second, is uses color appropriately, red for Republicans, and blue for Democrats. Third, the fitted lines over grade level of speech add value. They show no correlation for the Democrats and they show a negative correlation for Republicans–that is, the grade level speech of Republicans declines as their voting record becomes more conservative. The scatterplot was made in R. A writeup on how it was made is here.

But the scatterplot also leaves some things to be desired. First off, none of the points are labeled. At the very least the outliers should have labels associated with them. We want to know, for example, who is that red dot speaking 5 grade levels above the average (it’s Dan Lungren)? And who are those dots on the far left and far right of each party? Labeling specific points in R probably isn’t easy. Also, it might be interesting to see if there’s a relationship between grade level speech, ideology, and tenure, so the points should be sized by the number of years in Congress.

After seeing the scatterplot, I wondered what it would look like in Tableau. So I put together the interactive viz below.

While I’m a capable Tableau user, I needed help from Tableau experts to keep the trendlines separate between the two parties. So I reached out to the Tableau Community and got help from Tableau experts Jonathan Drummey who came up with the idea of computing separate trendlines on each viz and then combining the vizs on a dashboard. Shawn Wallwork liked that idea and suggested adding confidence bands to the trendlines. Shawn also added quadrants to each graph, which I think was a brilliant move. I included those quadrants in my viz below. The horizontal sections of the quadrants show us the difference in grade level of speech, with the Democrats speaking at a 11.7 grade level and the Republicans speaking at a 11.2 grade level. Tableau Legend Joe Mako also chimed in with an elegant solution that allowed me to plot both charts with trendlines on a single chart. I think Joe’s solution is great. Having all the data on one chart allows the user to select data across both groups. Had I used 2 separate charts and pieced them together via a dashboard in Tableau, then the user wouldn’t be able to select points on both charts. Thank you Joe, Jonathan, and Shawn (DataViz Dude).

Also, with the Tableau viz the user can hover over a point and see which representative the point is associated with. In addition, the reader can also select a group of points and view the data in tabular format. That’s a really useful feature. Oh, also, Tableau Public (that’s what I’m using to show you the viz) is as inexpensive as R, as in, free.

Tableau is the better tool for this viz. It’s interactive, which gives the reader the ability to explore the data on their own. For example, go ahead and use the slider on top of the viz and exclude all representatives with less than 5 years tenure.

Finally, I’m not making a point here about which is the smarter/dumber party. My personal belief is that, when people are discussing important topics, it’s best to speak clearly and simply.

4 thoughts on “Tableau to the rescue! How to improve Sunlight Foundation’s scatterplot showing that Congress speaks like Juveniles

  1. Love the concept and your reinterpretation of the data.  Would be great as an election aid to focus on state and somehow link to effectiveness though when paired with Congress and ideology it’s hard to say what effectiveness is.  Especially in an environment where obstruction is often considered as effective as voting for bills that have no chance of ultimate passage.  Someone wiser than me will need to figure out the appropriate metric for that.

  2. John, Here is my $.02 worth.  Added a view to show members by state and party, still sized by tenure, along grade level scale.  Use the view to highlight state delegations in the the scatter plot.  Try Georgia, for example –> interesting scatter there.


    1.  @mcristiaVery nice improvement Michael! I was thinking about using a map to show the differences, but your horizontal dot plot (I guess we can call it a scatter plot too) is a better alternative.
      I made a small modification to your work by sorting the States from lowest to highest grade level of speech. The altered viz is at

      1.  @JohnMunoz 
        Neat, really neat.  Viewers and interactors can really get the sense of things without hardly and cognitive load, and the interaction is rich and inviting.  You may want to set the dot plot to Fit Width so there is no horizontal scrolling.
        So here is an added question this added wrinkle facilitates:  in states where the delegation has a number of newcomers, wouldn’t it be interesting to plot their predecessors and see what kind of shift there has been, especially if the seats changed parties.  For example, Texas.  Looks like the Democrats for the most part are long time servers, But were there any Democrats unseated by new Republicans, and how do their liberal/conservative and grade level speech compare?
        Thanks for doing this, John. Lots of fun learning from you masters.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>