在ggplot下面的内容中,我尝试更改facet_wrap使用的 10 个方面标签labeller(sch.id=paste0("sch.id:", unique(ten$sch.id)))。
然而,该图显示NA而不是正确的方面标签,我想知道修复是什么?
library(ggplot2)
hsb <- read.csv('https://raw.githubusercontent.com/rnorouzian/e/master/hsb.csv')
ten <- subset(hsb, sch.id %in% unique(sch.id)[1:10])
p <- ten %>% ggplot() + aes(ses, math) + geom_point() +
facet_wrap(~sch.id) + geom_smooth(method = "lm", se = FALSE)
p + facet_wrap(~sch.id, labeller = labeller(sch.id=paste0("sch.id:", unique(ten$sch.id)))) ## HERE ##
Run Code Online (Sandbox Code Playgroud)
我认为最简单的方法是sch.id在绘图之前进行更改。
library(ggplot2)
ten$sch.id <- paste0("sch.id:", ten$sch.id)
ggplot(ten) + aes(ses, math) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
facet_wrap(~sch.id)
Run Code Online (Sandbox Code Playgroud)
如果您不想修改数据并想使用参数,labeller您可以创建一个命名向量并在labeller.
cust_label <- setNames(paste0("sch.id:", unique(ten$sch.id)), unique(ten$sch.id))
ggplot(ten) + aes(ses, math) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
facet_wrap(~sch.id, labeller = as_labeller(cust_label))
Run Code Online (Sandbox Code Playgroud)