编辑刻面/条带与绘图之间的距离

Posted

技术标签:

【中文标题】编辑刻面/条带与绘图之间的距离【英文标题】:Edit distance between the facet / strip and the plot 【发布时间】:2019-09-03 19:55:47 【问题描述】:

例如,

library(ggplot2)
ggplot(mpg, aes(displ, cty)) + geom_point() + facet_grid(cols = vars(drv))

如何更改条带和主图之间的距离? (例如,在地带和主图之间创建一个间隙。) 但我不需要更改条带大小(与此 edit strip size ggplot2 不同)。

【问题讨论】:

我认为你应该指定theme(strip.background =...)。见***.com/questions/14185754/… @atsyplenkov 我需要在地带和主情节之间创建一个间隙。 【参考方案1】:

这个问题可以有多种解决方案。

geom_hline

一个 hacky 是在情节顶部添加一条线(可能是白色的,但这取决于您的主题)。我们可以使用geom_hline(或geom_vline,如果您的构面成行)来做到这一点。这会产生距离错觉。

library(ggplot2)
ggplot(mpg, aes(displ, cty)) +
  geom_point() +
  facet_grid(cols = vars(drv)) +
  # Add white line on top (Inf) of the plot (ie, betweem plot and facet)
  geom_hline(yintercept = Inf, color = "white", size = 4) +
  labs(title = "geom_hline")

strip.background

另一个解决方案(如@atsyplenkov 所建议的)是使用theme(strip.background = ...)。在那里您可以指定边框的颜色。但是,这并不完美,因为它会从各个方向切出边界(可能有办法改善这一点)。

ggplot(mpg, aes(displ, cty)) +
  geom_point() +
  facet_grid(cols = vars(drv)) +
  # Increase size of the border
  theme(strip.background = element_rect(color = "white", size = 3)) +
  labs(title = "strip.background")

【讨论】:

【参考方案2】:

有一个更简单的解决方案

theme(strip.placement = "outside")

【讨论】:

以上是关于编辑刻面/条带与绘图之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

ggplot:对齐多个刻面图-所有不同大小的刻面

空间数据:计算点与最大点值的距离并绘图

增加matplotlib中标题和绘图之间的距离? [复制]

减少y标签和绘图区域ggplot之间的距离

如何填充两个 UIBezierPaths 之间的空间

带有刻面网格的哑铃图错误,无法创建并排图