R学习与可视化

R | 更改分面标签

2021-05-13  本文已影响0人  尘世中一个迷途小书僮

问题描述

使用ggplot2分面绘图时,分面的标签与分面变量是一样的。但有时候用于分面的变量名不能满足我们对标签的需求,这个时候应该采取什么样的方法替换呢?

解决方法

搜索一轮后,发现可以通过facet_*()函数内的labeller参数替换分面标签,下面使用ggplot2里的示例数据ToothGrowth进行演示

library(ggplot2)
df <- ToothGrowth
df$dose <- as.factor(df$dose)
ggplot(df, aes(x=dose, y=len, group=dose)) + 
  geom_boxplot(aes(fill=dose)) +
  facet_grid(~supp) 

创建named vector 指定替换的label,并使用as_labeller()将它转换为一个labeller函数

#注意反引号``
sample_label <- c(
  `OJ` = 'Orange Juice',
  `VC` = 'Vitamin C'
)
ggplot(df, aes(x=dose, y=len, group=dose)) + 
  geom_boxplot(aes(fill=dose)) +
  facet_grid(~supp, labeller = as_labeller(sample_label)) 

但这种方法的缺点在于如果分面变量很多的时候,需要一个个改会较为麻烦,暂时还没找到更加便利的方法。

ref
How to change facet labels?: https://stackoverflow.com/questions/3472980/how-to-change-facet-labels

完。

上一篇下一篇

猜你喜欢

热点阅读