我有两个面图(A,ncol = 3 ; B,ncol = 2),我想合并在一起。当合并(使用ggarrange)时,我希望每个图的面都对齐(即,我想强制facet_wrap使用参数ncol=X,即使面的数量小于X)。
你知道我该怎么做吗?
#reprex
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
df <- ToothGrowth
bp <- ggplot(df, aes(x=dose, y=len, group=dose)) + geom_boxplot(aes(fill=dose))
a <- bp + facet_wrap(~ dose, ncol=3)
b <- bp + facet_wrap(~ supp, ncol=3)
grid.arrange(a,b,nrow=2)
字符串
我得到的:
x1c 0d1x的数据
我想要的:
的
2条答案
按热度按时间pbgvytdp1#
一个快速简单的选择是使用
ggh4x::facet_manual
,它通过design=
参数允许单独放置面板,并且可以轻松添加空面板。但是,这仍然会将第二行的图例放置在面板的右侧。字符串
的数据
disho6za2#
使用cowplot定义底部行,然后将其嵌套在主网格中。您可能需要根据渲染方式调整2.3。
字符串
这就是在Windows上使用Rgui的样子,如果图形窗口完全展开。
rel_widths = c(2.7, 1)
如果不展开会更好。的数据