使用ggplot2> = 2.0中的贴标机混合空和bquote-d facet标签

jai*_*ash 7 r ggplot2

在2.0之前,在ggplot2中我可以使用element_blanklabeller仅标记行或列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))))
Run Code Online (Sandbox Code Playgroud)

现在,对于ggplot22.0版本,这不起作用,给予

Error in if (attr(labels, "facet") == "wrap") { :
  argument is of length zero
Calls: <Anonymous> ... lapply -> FUN -> <Anonymous> -> x -> resolve_labeller
Run Code Online (Sandbox Code Playgroud)

虽然改进label_bquote很好,有没有办法让上面的工作用labeller

我试过了:

1)传球NULL,但方面默认为label_value(按照?label_bquote)

  g + facet_grid(vs ~ gear,
               labeller = label_bquote(
                            rows = NULL,
                            cols = mu == .(gear)))
Run Code Online (Sandbox Code Playgroud)

2)传球,element_blank但小平面说element_blank()

g + facet_grid(vs ~ gear,
           labeller = label_bquote(
                        rows = element_blank(),
                        cols = mu == .(gear)))
Run Code Online (Sandbox Code Playgroud)

3)包裹element_blankas_labeller

g + facet_grid(vs ~ gear, labeller=labeller(.rows = as_labeller(element_blank()),
                                            .cols = label_bquote(mu == .(gear))))
Run Code Online (Sandbox Code Playgroud)

请注意,可以在使用主题后删除构面标签

g + facet_grid(vs ~ gear,
               labeller = label_bquote(cols = mu == .(gear))) +
    theme(strip.text.y = element_blank())
Run Code Online (Sandbox Code Playgroud)

但我想用一个labeller.

eip*_*i10 4

你可以做rows=""rows = ` `. 这将去掉标签,但仍然会有空白的灰色条带。

为了清楚起见,这是完整的命令:

 g + facet_grid(vs ~ gear,
                labeller = label_bquote(rows = "",
                                        cols = mu == .(gear)))
Run Code Online (Sandbox Code Playgroud)

当然,您也可以通过添加来消除灰色条带theme(strip.text.y = element_blank())