我需要生成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中使用该方法,但它仅适用于第一个图形。关于我做错什么的任何建议?
答案 0 :(得分:1)
我能够通过研究(亚特来发现ggsave不能与grid.arrange一起工作。
因此我必须使用完美的工作:
f.name <- paste(v, ".png", sep = "") +
png(f.name) +
grid.arrange(p1, p2, p3, ncol = 3)
dev.off()
}