写图到png文件

时间:2012-08-03 17:07:20

标签: r plot png ggplot2

我可以使用ggplot2将ggplot命令的输出存储到一个对象,并在grid.arrange中调用该对象以写入R脚本中的文件,如下所示:

p<-ggplot(x, aes(x=Date, y=Date)) + geom_bar(aes(x=Date,y=Data)

png("data.png", height=700, width=650)

grid.arrange(p, main=textGrob("Data"), gp=gpar(cex=2)               

dev.off()

我正在使用情节创建一堆预测图,但我无法做同样的事情。任何人都有任何建议如何将剧情输出写入剧本中的png文件?

2 个答案:

答案 0 :(得分:4)

我们没有可以使用的数据,问题也不清楚,所以这里是我认为OP使用mtcars数据集后的示例(每个图的单独图):

dat <- split(mtcars, mtcars$cyl)

lapply(dat, function(x) {
    ggplot(x, aes(mpg, disp, colour=gear)) + geom_point()
    }
)

#a way to get separate plots for each plot
plot2 <- function(theplot, name, ...) {
    name <- paste0(name, ".png")
    png(filename=name)
    print(theplot)
    dev.off()
} #plotting function

lapply(seq_along(dat), function(i) {
    x <- dat[[i]]
    z <- ggplot(x, aes(mpg, disp, colour=gear)) + geom_point()
    plot2(z, name=paste0("TEST", names(dat)[i]))
    }
)

答案 1 :(得分:0)

data <- data.frame(x=1:10,y=rnorm(10))
p <- ggplot(data, aes(x,y)) + geom_point()
p
library(gridExtra)
Loading required package: grid
grid.arrange(p,p,p)
ggsave('~/Desktop/grid.png')

此方法不适用于预测图吗?