gpt4 book ai didi

r - 如何使用facet_wrap产生的空白空间?

转载 作者:行者123 更新时间:2023-12-03 01:19:20 25 4
gpt4 key购买 nike

我有一个多面图,形成一个 n x m 网格。根据设计,最后一个(右下角)单元格始终为空,因此我想通过添加另一个 ggplot 对象来利用额外的空间。我当前的解决方案依赖于低级视口(viewport)方法,这不是很优雅,并且需要对位置和大小进行一些硬编码。

相反,我假设可以通过其他方式访问空白空间,可能使用gridExtra

这是 n=m=2 的最小示例。请注意,边缘没有正确对齐,因此需要一些额外的工作来手动调整视口(viewport)的参数,这很痛苦,特别是如果之后 (n, m) 发生变化。

library(ggplot2)
library(grid)
p <- qplot(displ, hwy, data = mpg[mpg$cyl != 5, ]) +
facet_wrap(~ cyl, nrow=2)
q <- qplot(date, unemploy, data = economics, geom = "line") +
labs(x = NULL, y = NULL)
p
print(q, vp=viewport(0.75, 0.275, 0.45, 0.45))

enter image description here

最佳答案

您可以使用gtable来访问“空单元格”,如下所示

library(gtable)
pg <- ggplotGrob(p)
qg <- ggplotGrob(q)

pl <- gtable_filter(pg, 'panel', trim=F)$layout
pg <- gtable_add_grob(pg, qg, t=max(pl$t), l=max(pl$l))

grid.newpage()
grid.draw(pg)

编辑:n x m 个刻面的通用放置

关于r - 如何使用facet_wrap产生的空白空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22450765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com