介绍
有时候我们需要将多个图像排列好放到一张图上,对于R语言基础包的函数,比如plot, barplot, hist等,是可以通过par, layout进行排版,但是对于ggplot的图像,我们需要使用别的方法
几种方法实现
传统的par和layout的方法
par方法
方法只适用于基础包的函数(plot, barplot, hist等),不适用于ggplot。
par(mfrow = c(1,2))
plot(mtcars[,1:2],pch =19)
plot(iris[,1:2],pch = 19)
layout方法
layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), widths=c(3,1), heights=c(1,3), respect=TRUE)
设置布局,布局矩阵是
2 0
1 3
表示左下是第一个画,左上是第二个,右下是第三个画,右上不画图。widths = c(3,1)表示从左到右宽度比是3比1,heights=c(1,3)表示高度从上到下是1比三, respect=True单位列宽与单位行高在设备上是相同的物理度量
示例如下
#读入数据
air
#首先设置布局
layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), widths=c(3,1), heights=c(1,3), TRUE)
#画散点图
par(mar=c(5.1,4.1,0.1,0))
plot(air$Respirable.Particles~air$Nitrogen.Oxides,pch=19,
col="black",xlim=c(0,600),ylim=c(0,80),xlab="Nitrogen Oxides Concentrations",ylab="Respirable Particle Concentrations")
#画X的直方图,在散点图的上方
par(mar=c(0,4.1,3,0))
hist(air$Nitrogen.Oxides,breaks=seq(0,600,100),ann=FALSE,axes=FALSE,
col="black",border="white&#