Best practices: bar plots

Intermediate Data Visualization with ggplot2

Rick Scavetta

Founder, Scavetta Academy

In this chapter

  • Common pitfalls in Data Viz
  • Best way to represent data
    • For effective explanatory (communication), and
    • For effective exploratory (investigation) plots
Intermediate Data Visualization with ggplot2

Bar plots

  • Two types
    • Absolute values
    • Distributions
Intermediate Data Visualization with ggplot2

Mammalian sleep

Observations: 76
Variables: 3
$ vore  <chr> "carni", "omni", "herbi", "omni", "herbi", "herbi", "carni", …
$ total <dbl> 12.1, 17.0, 14.4, 14.9, 4.0, 14.4, 8.7, 10.1, 3.0, 5.3, 9.4, …
$ rem   <dbl> NA, 1.8, 2.4, 2.3, 0.7, 2.2, 1.4, 2.9, NA, 0.6, 0.8, 0.7, 1.5…
Intermediate Data Visualization with ggplot2

Dynamite plot

d <- ggplot(sleep, aes(vore, total)) +
 # ...

d + 
  stat_summary(fun = mean,
               geom = "bar",
               fill = "grey50") +
  stat_summary(fun.data = mean_sdl,
               fun.args = list(mult = 1),
               geom = "errorbar", 
               width = 0.2)

Intermediate Data Visualization with ggplot2

Individual data points

# position
posn_j <- position_jitter(width = 0.2)

# plot
d +
  geom_point(alpha = 0.6, 
             position = posn_j)

Intermediate Data Visualization with ggplot2

geom_errorbar()

d +
  geom_point(...) +
  stat_summary(fun = mean, 
               geom = "point", 
               fill = "red") +
  stat_summary(fun.data = mean_sdl, 
               fun.args = list(mult = 1), 
               geom = "errorbar", 
               width = 0.2, 
               color = "red")

Intermediate Data Visualization with ggplot2

geom_pointrange()

d +
  geom_point(...) +
  stat_summary(fun.data = mean_sdl, 
               mult = 1, 
               width = 0.2, 
               color = "red")

Intermediate Data Visualization with ggplot2

Without data points

d +
  stat_summary(fun = mean, 
               geom = "point") +
  stat_summary(fun.data = mean_sdl, 
               fun.args = list(mult = 1), 
               geom = "errorbar", 
               width = 0.2)

Intermediate Data Visualization with ggplot2

Bars are not necessary

Intermediate Data Visualization with ggplot2

Ready for exercises!

Intermediate Data Visualization with ggplot2

Preparing Video For Download...