如何使用 ggplot_build 和 ggplot_gtable 调整 facet_grid 框架和箱线图之间的距离

Posted

技术标签:

【中文标题】如何使用 ggplot_build 和 ggplot_gtable 调整 facet_grid 框架和箱线图之间的距离【英文标题】:How to adjust the distance between the facet_grid frame and boxplots using ggplot_build & ggplot_gtable 【发布时间】:2019-08-28 02:46:51 【问题描述】:

我们使用箱线图呈现结果数据,并使用 facet_grid 与 ggplot2 和 geom_boxplot 将这些数据分组以用于不同的方法。

我们想在箱线图和 facet_grid 的框架之间添加更多空间,如下图所示。

我们使用的代码包括 ggplot_build 和 gglot_table。 需要设置 ggplot_build 的哪个参数才能在面板中获得更多空间?

require(ggplot2)
require(grid)
dat <- rbind(data.frame(approach=1,product=1,value=seq(1,20,0.5)), 
             data.frame(approach=1,product=2,value=seq(5,15,0.3)), 
             data.frame(approach=1,product=3,value=seq(5,17,0.2)), 
             data.frame(approach=2,product=1,value=seq(1,13,0.3)), 
             data.frame(approach=2,product=2,value=seq(3,18,0.5)), 
             data.frame(approach=2,product=3,value=seq(4,25,0.7)), 
             data.frame(approach=3,product=1,value=seq(1,15,0.6)), 
             data.frame(approach=3,product=2,value=seq(3,16,0.5)), 
             data.frame(approach=3,product=3,value=seq(1,10,0.1)))

dat$product<-as.factor(dat$product)

gg1<-ggplot(dat, aes(x =product, y = value)) +
  geom_boxplot() + 
  facet_grid(cols=vars(approach)) 


gt = ggplot_gtable(ggplot_build(gg1))
grid.draw(gt)

【问题讨论】:

您好,感谢您的建议,但是,它也可能会影响 x 轴的标签。是否没有通过更改比例来更改位置而不使用变通方法的设置? 【参考方案1】:
ggplot(dat, aes(x =product, y = value)) +
  geom_boxplot() + 
  coord_cartesian(xlim = c(1.2, 2, 2.8)) +
  facet_grid(cols=vars(approach))

【讨论】:

好; (我认为限制 xlim = c(0, 4) 给出了操作想要的)

以上是关于如何使用 ggplot_build 和 ggplot_gtable 调整 facet_grid 框架和箱线图之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hline 中添加图例?

ggplot 改变每一个分面的颜色

每组 7 天移动平均线 - R

使用 geom_bar 和 stat="identity" 在均值处绘制 hline

将图例添加到由 ggplot 包装的饼图

ggplot geom_bar() 在绘图上填充不着色条