ggplot2:将构面条设置为element_blank()时出错

时间:2017-09-21 15:19:27

标签: r ggplot2

我正在尝试删除ggplot中的facet strip,但是我收到了一个错误。根据现有帮助,执行此操作的方法是将主题参数strip.backgroundstrip.text设置为element_blank()。但是,当我这样做时,我收到一个错误:

  

应用中出错(strip_mat,1,max_height):dim(X)必须具有正长度

这是一个可重复的例子。

library(ggplot2)
gdat = data.frame(a = rep(LETTERS[1:10], 10), x = rnorm(100), y = rnorm(100))
g = ggplot(gdat, aes(x = x, y = y)) + geom_point()
g = g + facet_wrap(~a)
g = g + theme(strip.background = element_blank(), strip.text = element_blank())
g
你能帮我理解我做错了什么吗?我使用的是R Open 3.4.0和ggplot2 2.2.1.9。

1 个答案:

答案 0 :(得分:1)

一种解决方案是将构面标签颜色设置为透明(使用element_text(color = "transparent"))或将标签尺寸设置为0 element_text(size = 0)。要删除面板之间的间距,请使用panel.spacing(在这种情况下,我在y轴上减少间距)。

library(ggplot2)

d <- data.frame(a = rep(LETTERS[1:10], 10), x = rnorm(100), y = rnorm(100))
ggplot(d, aes(x, y)) + 
    geom_point() + 
    facet_wrap(~ a) + 
    theme(strip.background = element_blank(), 
          strip.text = element_text(color = "transparent"),
          panel.spacing.y = unit(-0.8, "lines"))

enter image description here