最佳实践:条形图

ggplot2 数据可视化进阶

Rick Scavetta

Founder, Scavetta Academy

本章内容

  • 数据可视化常见陷阱
  • 表达数据的最佳方式
    • 用于高效解释(沟通),以及
    • 用于高效探索(分析)
ggplot2 数据可视化进阶

条形图

  • 两种类型
    • 绝对值
    • 分布
ggplot2 数据可视化进阶

哺乳动物的睡眠

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…
ggplot2 数据可视化进阶

"炸药包"图

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)

ggplot2 数据可视化进阶

个体数据点

# position
posn_j <- position_jitter(width = 0.2)

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

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")

ggplot2 数据可视化进阶

geom_pointrange()

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

ggplot2 数据可视化进阶

不显示数据点

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

ggplot2 数据可视化进阶

无需条形

ggplot2 数据可视化进阶

开始练习!

ggplot2 数据可视化进阶

Preparing Video For Download...