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
完。