在facet_wrap()中用行代替框

时间:2019-02-24 00:25:15

标签: r ggplot2 facet-wrap

我正在尝试用小平面清洁ggplot,以便代替小平面标签周围的典型框,我可以显示一条简单的线(等效于的底线)。

以下代码几乎可以帮助我,但与所需的输出有所不同。

ggplot(mtcars, aes(mpg, hp)) +
 geom_point() +
 facet_wrap(~cyl) +
 theme_classic() +
 theme(strip.background = element_blank())

所需的输出(手动编辑)。理想情况下,该行的长度应比panel.background短一些(这样它就不会碰到y轴)

enter image description here

2 个答案:

答案 0 :(得分:2)

也许使用注释+细分

ggplot(mtcars, aes(mpg, hp)) +
    geom_point() +
    facet_grid(~cyl,) +
    theme_classic() +
    theme(strip.background = element_rect(color = "white"),
          strip.placement = "inside",
          strip.text = element_text(vjust = -1)) + 
    annotate("segment",x = 10,xend = 34,y = 375,yend = 375, size = 0.5,) + 
    coord_cartesian(ylim = c(0, 360), clip="off")

enter image description here

答案 1 :(得分:1)

不完全是您想要的,但是关闭...

ggplot(mtcars, aes(mpg, hp)) +
theme_bw() +
theme(
  panel.grid.major = element_blank(),
  panel.grid.minor = element_blank(),
  strip.background = element_blank(),
  panel.border = element_rect(colour = "black")
)+
geom_point() +
facet_wrap(~cyl)