1

我有四个图表(类型:ggplot2)并试图将它们保存为 png。但是,当我运行下面的代码时,只会保存 ch4。

png(filename = fname, width = 900, height = 600, units = 'px')
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
ch1
ch2
ch3
ch4
dev.off()

我会很感激知道我做错了什么。

4

2 回答 2

2

使用grid.arrange代替layout

library(ggplot2)
library(gridExtra)
ch1 <- qplot(1,2)
ch2 <- qplot(1,2)
ch3 <- qplot(1,2)
ch4 <- qplot(1,2)

png(filename = "fname.png", width = 900, height = 600, units = 'px')
grid.arrange(ch1,ch2,ch3,ch4, ncol = 2)
dev.off()

在此处输入图像描述

您可以使用layout函数进行基础绘图。请注意,必须在内部指定文件扩展名""

png(filename = "fname.png", width = 900, height = 600, units = 'px')
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
plot(1,2)
plot(1,2)
plot(1,2)
plot(1,2)
dev.off()

在此处输入图像描述

于 2013-02-21T13:16:37.000 回答
2

ggplot2 图形可以使用包中的单个页面进行布局grid.arrange()gridExtra例如:

df <- data.frame(x=1:3, y=c(1, 4, 9))
p <- ggplot(df, aes(x, y))
p1 <- p + geom_point(colour="red")
p2 <- p + geom_point(colour="blue")
p3 <- p + geom_point(colour="green")
p4 <- p + geom_point(colour="purple")

library(gridExtra)
png(filename="test.png", width=600, height=600)
grid.arrange(p1, p2, p3, p4)
dev.off()
于 2013-02-21T13:23:55.217 回答