自动保存多个图形

时间:2015-05-30 03:59:08

标签: r graphics ggplot2

我需要生成170个图表。当我尝试自动保存所有图形时,只有第一个显示正确的图形,其他图形为空白。

df <- read.csv("Full_data.csv", header = TRUE)
all.station <- as.vector(unique(df$Station))
for (i in 1:10) {
df.sub <- subset(df, df$Station == all.station[i])
df.1 <- df.sub[1:3, ]
v <- df.1[1,1]
z <- df.1[1, 3]
u <- df.sub[6, 3]

p1 = ggplot(...)
p2 = ggplot(...)
p3 = ggplot(...)
grid.arrange(p1, p2, p3, ncol = 3)
f.name <- paste(v, ".png", sep = "")
png(f.name)
ggsave(f.name, width=3.5, height=5, units = c("in"), dpi=100)

}
dev.off()

当我手动执行此操作时,所有这些都可以通过绘图窗口中的导出命令正常工作。我尝试在cookbook中使用该方法,但它仅适用于第一个图形。关于我做错什么的任何建议?

1 个答案:

答案 0 :(得分:1)

我能够通过研究(亚特来发现ggsave不能与grid.arrange一起工作。

因此我必须使用完美的工作:

    f.name <- paste(v, ".png", sep = "") +
    png(f.name) +
    grid.arrange(p1, p2, p3, ncol = 3)
    dev.off()
    }