【发布时间】:2018-11-28 11:21:02
【问题描述】:
我正在尝试生成 10 对图,每页图有几对,并且正在使用 for 循环来构建这些对。但是,绘图会作为单独的绘图而不是页面发送到设备。
下面的 MWE 具有基本图形和 ggplot 版本的相同结构,但基本图形有效,ggplot 无效。在第二个版本中,我需要做什么才能使分页正确?
library(ggplot2)
attach(mtcars)
# correct configuration
par(mfrow=c(2,2))
for (ii in 1:3){
vars <- c("wt", "disp", "wt")
plot(get(vars[ii]), mpg)
hist(get(vars[ii]))
}
# places each on separate plot
par(mfrow=c(2,2))
for (ii in 1:3){
vars <- c("wt", "disp", "wt")
p <- ggplot(mtcars, aes(get(vars[ii]), mpg)) + geom_point(size=4)
plot(p)
p <- ggplot(mtcars, aes(get(vars[ii]))) + geom_histogram()
plot(p)
}
detach(mtcars)
【问题讨论】:
-
par不能在ggplot图形上运行,只能在基数 R 上运行。您是否想要对图进行刻面? -
构面的潜在替代方案是
gridExtra::grid.arrange;参见例如this post. -
很高兴知道
par不可用。这不是facet问题-不同的情节。我将不得不看看我是否可以使gridExtra::grid.arrange或cowplot::plot_grid足够灵活,以处理不命名个人地块的问题。 -
您可以尝试将您的图存储在一个列表中,以便使用您提到的包/功能。
标签: r ggplot2 gridextra cowplot tidyeval