在2.0之前,在ggplot2中,我可以使用element_blank
和labeller
仅标记facet_grid
中的行或列,例如:
library(ggplot2)
g <- ggplot(mtcars) + geom_point(aes(mpg, cyl))
g + facet_grid(vs ~ gear, labeller=labeller(vs = element_blank(),
gear = label_bquote(mu == .(x))))
现在,对于
ggplot2
2.0版,此操作不起作用,Error in if (attr(labels, "facet") == "wrap") { :
argument is of length zero
Calls: <Anonymous> ... lapply -> FUN -> <Anonymous> -> x -> resolve_labeller
尽管improvements to
label_bquote
非常好,但是有什么方法可以使labeller
达到上述目的吗?,我尝试过:
1)传递
NULL
,但构面默认为label_value
(按照?label_bquote
) g + facet_grid(vs ~ gear,
labeller = label_bquote(
rows = NULL,
cols = mu == .(gear)))
2)传递
element_blank
但构面说element_blank()
g + facet_grid(vs ~ gear,
labeller = label_bquote(
rows = element_blank(),
cols = mu == .(gear)))
3)将
element_blank
包装在as_labeller
中g + facet_grid(vs ~ gear, labeller=labeller(.rows = as_labeller(element_blank()),
.cols = label_bquote(mu == .(gear))))
请注意,可以remove facet labels after the fact using theme
g + facet_grid(vs ~ gear,
labeller = label_bquote(cols = mu == .(gear))) +
theme(strip.text.y = element_blank())
但是我想用
labeller
做到这一点。 最佳答案
您可以执行rows=""
或rows = ` `
。尽管您仍然会有空白的灰色 strip ,但是这将摆脱标签。
为了清楚起见,这是完整的命令:
g + facet_grid(vs ~ gear,
labeller = label_bquote(rows = "",
cols = mu == .(gear)))
您当然也可以通过添加
theme(strip.text.y = element_blank())
摆脱灰色地带。