The Ugly Plot Contest

The goal is to create a ggplot figure that breaks all the rules of sound figure design.


A good plot has the following:

  • Easily distinguishable colors (colorblind-friendly) or grayscale
  • Properly labeled axes with appropriate scales
  • Legible font size
  • If a legend is present, it is easy to read and uses intuitive labels
  • The correct geoms for the data types
  • Doesn’t hide data distributions by simplifying into a single meaningless geom
  • Facets that contain more than one data point, if there are facets at all
  • Proper aesthetic scales … i.e., not a color gradient if a variable is discrete
See this very good site for a detailed look at what makes a good graph.



Making a truly bad graph can be automatic, but it takes a lot of skill to really tweak ggplot to get it to do what you want. That’s the point of this exercise; you will get practice at manipulating all aspects of how your plot is printed.

We will turn these in in-class. You will run your code live to generate your ugly plot.


Think you can beat these?!