When good data makes bad plots

Intermediate Data Visualization with ggplot2

Rick Scavetta

Founder, Scavetta Academy

Bad plots: style

  • Color
    • Not color-blind-friendly (e.g. primarily red and green)
    • Wrong palette for data type (remember sequential, qualitative and divergent)
    • Indistinguishable groups (i.e. colors are too similar)
    • Ugly (high saturation primary colors)
  • Text
    • Illegible (e.g. too small, poor resolution)
    • Non-descriptive (e.g. "length" -- of what? which units?)
    • Missing
    • Inappropriate (e.g. comic sans)
Intermediate Data Visualization with ggplot2

Bad plots: structure and content

  • Information content
    • Too much information (TMI)
    • Too little information (TLI)
    • No clear message or purpose
  • Axes
    • Poor aspect ratio
    • Suppression of the origin
    • Broken x or y axes
    • Common, but unaligned scales
    • Wrong or no transformation
  • Statistics
    • Visualization doesn't match actual statistics
  • Geometries
    • Wrong plot type
    • Wrong orientation
  • Non-data Ink
    • Inappropriate use
  • 3D plots
    • Perceptual problems
    • Useless 3rd axis
Intermediate Data Visualization with ggplot2

Wrong orientation

Intermediate Data Visualization with ggplot2

Intermediate Data Visualization with ggplot2

Intermediate Data Visualization with ggplot2

Broken y-axes

Intermediate Data Visualization with ggplot2

Broken y-axes, replace with transformed data

Intermediate Data Visualization with ggplot2

Broken y-axes, use facets

Intermediate Data Visualization with ggplot2

3D plots, without data on the 3rd axis

Intermediate Data Visualization with ggplot2

3D plots, with data on the 3rd axis

Intermediate Data Visualization with ggplot2

Double y-axes

Intermediate Data Visualization with ggplot2

Double y-axis for transformations

with annotations

Intermediate Data Visualization with ggplot2

Guidelines not rules

  • Use your common sense:
    • Is there anything on my plot that obscure a clear reading of the data or the take-home message?
Intermediate Data Visualization with ggplot2

Let's practice!

Intermediate Data Visualization with ggplot2

Preparing Video For Download...