任何ggplots并排(或网格上的n个图)
gridExtra包中的grid.arrange()函数将组合多个图;这是你怎么把两个并列。
require(gridExtra)
plot1
plot2
grid.arrange(plot1, plot2, ncol=2)
当两个图不是基于相同的数据时,这是有用的,例如,如果要在不使用reshape()的情况下绘制不同的变量。
这将绘制输出作为副作用。要将副作用打印到文件,请指定设备驱动程序(如pdf,png等),例如。
pdf("foo.pdf")
grid.arrange(plot1, plot2)
dev.off()
或者,使用arrangeGrob()结合ggsave(),
ggsave("foo.pdf", arrangeGrob(plot1, plot2))
这相当于使用par(mfrow = c(1,2))做出两个不同的图。这不仅节省了排列数据的时间,当你想要两个不同的图时,这是必要的。
附录:使用构面
方面有助于为不同组创建类似的图。这在下面的许多答案中被指出,但是我想用与上面的图相等的示例来强调这种方法。
mydata
qplot(data = mydata,
x = myX,
facets = ~myGroup)
ggplot(data = mydata) +
geom_bar(aes(myX)) +
facet_wrap(~myGroup)
更新
在cowplot的plot_grid函数值得检查出来作为grid.arrange的替代。参见下面的@ claus-wilke的answer和等价方法的this vignette;但该功能允许对绘图位置和大小进行更精细的控制,基于this vignette。