在ggplot2> = 2.0中使用标签的d facet标签

在此之前的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))))

现在,使用ggplot2版本2.0,这不起作用

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

尽管对label_bquote的改进非常好,但是有什么办法可以通过labeller来完成上述工作吗?

我试过了:

1)传递NULL ,但facet默认为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)在as_labeller包装element_blank

g + facet_grid(vs ~ gear, labeller=labeller(.rows = as_labeller(element_blank()),
                                            .cols = label_bquote(mu == .(gear))))

请注意 ,使用主题后可以删除facet标签

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

但我想用labeller来做。


你可以做rows=""rows = ` ` 。 这将摆脱标签,虽然你仍然有一个空白的灰色地带。

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

 g + facet_grid(vs ~ gear,
                labeller = label_bquote(rows = "",
                                        cols = mu == .(gear)))

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

链接地址: http://www.djcxy.com/p/33537.html

上一篇: d facet labels using a labeller in ggplot2 >= 2.0

下一篇: Mouse cursor set using jQuery/CSS not changing until mouse moved