我应该如何在R中将七个不同的图表绘制在同一页PDF上?
我目前使用的是matplot,但似乎没有这个选项。我需要将数据列绘制成数据列。
我最初尝试使用lattice库来完成此操作,但我似乎无法弄清楚如何绘制数据列。它似乎需要一个函数。
pdf
函数并在第一个参数中指定文件名来初始化pdf文档。最后使用dev.off()
关闭图形设备并完成pdf文件生成。稍后你将在工作目录中看到一个新的文档(在本例中是'plots.pdf')。d <- data.frame(matrix(sample(c(1:700), 2000, TRUE), 10, 20))
pdf('plots')
par(mfrow = c(3, 3)) ## set the layout to be 3 by 3
sapply(1:9, function(i) plot(d[,i]))
dev.off()
这将生成这个pdf文件
如果您想使用基本图形完成此操作,我强烈建议使用layout()
函数。它需要一个矩阵来定义如何分割窗口。它将为矩阵中的每一行创建一行,并为每一列创建一列。它按单元格编号的顺序绘制图表。因此,如果您传递矩阵:
#layout(matrix(c(1:7,7), ncol=2, byrow=T))
# [,1] [,2]
#[1,] 1 2
#[2,] 3 4
#[3,] 5 6
#[4,] 7 7
第一个图将位于左上角,第二个图将位于右上角等,直到第七个图放置在底部。如果您希望它仅占据左下角,则可以通过在右下角指定不同的数字来实现。
要将布局重置为“正常”,只需调用
layout(1)
pairs()
绘图函数可能是你想要的。dd<-matrix(runif(5*5), ncol=5)
pairs(dd)
或者等价的格子图是 splom()
pdf()
函数的onefile = TRUE
选项也很容易实现。 - r2evans