分面标签与顺序

ggplot2 数据可视化进阶

Rick Scavetta

Founder, Scavetta Academy

新的数据框

# 绘图
p <- ggplot(msleep2, aes(bodywt_log,
                         brainwt_log)) +
  geom_point(alpha = 0.6, shape = 16) +
  coord_fixed()

p

ggplot2 数据可视化进阶

新的数据框,含分面

p +
  facet_grid(rows = vars(vore))

ggplot2 数据可视化进阶

新的数据框,含分面

p +
  facet_grid(rows = vars(vore))

ggplot2 数据可视化进阶

不佳的标签与顺序

p +
  facet_grid(rows = vars(vore))

分面常见问题:

  • 标签差(如不具描述性)
  • 顺序错误或不合适

ggplot2 数据可视化进阶

不佳的标签与顺序

p +
  facet_grid(rows = vars(vore))

解决方案:

  • 简单:在 ggplot 中添加标签
  • 更好:在数据框中重命名并重排因子变量

ggplot2 数据可视化进阶

labeller 参数

# 默认仅显示取值
p +
  facet_grid(rows = vars(vore), 
             labeller = label_value)

ggplot2 数据可视化进阶

使用 label_both 显示变量名

# 同时显示变量名
p +
  facet_grid(rows = vars(vore), 
               labeller = label_both)

ggplot2 数据可视化进阶

一侧使用两个变量

p +
  facet_grid(rows = vars(vore, 
                         conservation))

ggplot2 数据可视化进阶

用 label_context 避免歧义

p +
  facet_grid(rows = vars(vore,
                         conservation),
               labeller = label_context)

ggplot2 数据可视化进阶

合适时使用行与列

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation),
             labeller = label_context)

ggplot2 数据可视化进阶

合适时使用行与列

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation))

ggplot2 数据可视化进阶

合适时使用行与列

ggplot2 数据可视化进阶

重命名并重排因子

msleep2$conservation <- fct_recode(msleep2$conservation,
                                   Domesticated = "domesticated",
                                   `Least concern` = "lc",
                                   `Near threatened` = "nt",
                                   Vulnerable = "vu",
                                   Endangered = "en")

msleep2$vore = fct_recode(msleep2$vore,
                          Carnivore = "carni",
                          Herbivore = "herbi",
                          Insectivore = "insecti",
                          Omnivore = "omni")
ggplot2 数据可视化进阶

用新标签重新绘图

# 绘图
p <- ggplot(msleep2, aes(bodywt_log,
                         brainwt_log)) +
  geom_point(alpha = 0.6, shape = 16) +
  coord_fixed()

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation)) 

ggplot2 数据可视化进阶

用新标签重新绘图

ggplot2 数据可视化进阶

更改因子水平顺序

# 调整水平顺序:
msleep2$conservation = fct_relevel(msleep2$conservation,
                                   c("Domesticated",
                                     "Least concern",
                                     "Near threatened",
                                     "Vulnerable",
                                     "Endangered"))

ggplot2 数据可视化进阶

按新顺序重新绘图

ggplot2 数据可视化进阶

Passons à la pratique !

ggplot2 数据可视化进阶

Preparing Video For Download...