【发布时间】:2013-09-27 20:48:28
【问题描述】:
我正在对我的数据进行探索性分析,需要使用 ggplot 绘制多个图形。图形的数量非常庞大(206 个站),我想将它们绘制成 1 列而不是每页 8 行,需要的页面如此之多。我知道 viewport 或 grid.arrange 之类的功能,但我无法让它们在这种情况下工作。我已经注意到 layout() 和 par(mfrow=c(8,1)) 不能与 ggplot 一起使用,但是我发送了我卡在下面的代码部分。任何帮助将非常感激!
pdf('test.pdf', width=21, height=27)
par(mfrow=c(8,1))
for(i in levels(tab$Station))
{
print(ggplot(tab[tab$Station==i], aes(x=Date)) +
geom_line(aes(y=Tmin), col="blue", size=0.1) +
geom_line(aes(y=Tmax), col="red", size=0.1) +
geom_text(aes(x=as.Date('2010-01-01'), y=45), label=i) +
ylim(0, 45) +
scale_x_date(labels = date_format("%Y")) +
theme_bw() +
theme(
plot.background = element_blank()
,panel.grid.major = element_blank()
,panel.grid.minor = element_blank()
,panel.border = element_rect(color = 'black')
,panel.background = element_blank()
)
)
}
dev.off()
【问题讨论】:
-
嗨,何塞,您介意将此作为可重复的示例吗?这通常意味着提供玩具数据,以便我们可以抓取代码并运行它。大多数情况下,人们使用
data()函数来执行此操作。例如data(mtcars)将mtcarsdata.frame 加载到内存中。 -
@baptiste 的回答有用吗?
-
我知道这是一个老问题 - 但请尝试使用 ggforce 包中的 facet_wrap_paginate 函数。在此处查看帮助cran.r-project.org/web/packages/ggforce/ggforce.pdf 这就是我解决类似问题的方法。