gpt4 book ai didi

r - 使用 ggplot2 并排绘图

转载 作者:行者123 更新时间:2023-12-03 04:00:14 27 4
gpt4 key购买 nike

我想使用 ggplot2 package 并排放置两个图。 ,即执行相当于 par(mfrow=c(1,2)) 的操作。

例如,我想让以下两个图以相同的比例并排显示。

x <- rnorm(100)
eps <- rnorm(100,0,.2)
qplot(x,3*x+eps)
qplot(x,2*x+eps)

我需要将它们放在同一个 data.frame 中吗?

qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()

最佳答案

任何并排的 ggplots(或网格上的 n 个图)

gridExtra 中的函数 grid.arrange()包将合并多个地 block ;这就是将两个并排放置的方式。

require(gridExtra)
plot1 <- qplot(1)
plot2 <- qplot(1)
grid.arrange(plot1, plot2, ncol=2)

当两个图不基于相同的数据时,这非常有用,例如,如果您想在不使用 reshape() 的情况下绘制不同的变量。

这会将输出绘制为副作用。要将副作用打印到文件,请指定设备驱动程序(例如 pdfpng 等),例如

pdf("foo.pdf")
grid.arrange(plot1, plot2)
dev.off()

或者,将 arrangeGrob()ggsave() 结合使用,

ggsave("foo.pdf", arrangeGrob(plot1, plot2))

这相当于使用 par(mfrow = c(1,2)) 制作两个不同的图。这不仅节省了整理数据的时间,当您想要两个不同的图时,这是必要的。

<小时/>

附录:使用 Facet

分面有助于为不同的组绘制相似的图。下面的许多答案都指出了这一点,但我想用与上面的图等效的示例来强调这种方法。

mydata <- data.frame(myGroup = c('a', 'b'), myX = c(1,1))

qplot(data = mydata,
x = myX,
facets = ~myGroup)

ggplot(data = mydata) +
geom_bar(aes(myX)) +
facet_wrap(~myGroup)
<小时/>

更新

cowplot 中的 plot_grid 函数值得一试,作为 grid.arrange 的替代品。请参阅answer作者:@claus-wilke 下面和 this vignette对于等效方法;但该函数允许根据 this vignette 对绘图位置和大小进行更精细的控制。

关于r - 使用 ggplot2 并排绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249548/

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