在R绘图时,有时我们想在一个绘图区中同时绘制多幅图。这时,par()函数就派上用场了。
当然实现同一绘图区绘制多个图形有多个方法,这里先介绍一下par()函数的使用。
R中的par()函数可以将绘图区分割成规则的几个部分。
par()函数的作用主要是查询或设置绘图环境的参数。这里主要考虑使用它如何在一个绘图区绘制多幅图的情况。
多图环境用参数mfrow或参数mfcol来设定,如:
par(mforw=c(3,2))
则是在同一绘图区中绘制3行2列共6个图形,而且是先按行绘制,即绘制完第1行的2个图形后,再绘制第2行的2个图形,最后是第3行的2个图形。同理,
par(mfcol=c(3,2))
也是绘制3行2列共6个图形,与上面不同的是,先按列绘制。即先绘制完第1列的3个图形,再绘制第2列的3个图形。
par设定的绘图参数直至退出前都会有效,即使是在某个函数中使用par()设定的参数,也会影响全局的效果,所以如果在绘图中需要恢复到初始状态,可以设置临时变量保存初始环境。在准备恢复时再使用par(临时变量)的形式恢复到初始状态。
下面举例子说明该函数的具体使用方法:
设置一个2×2的多图窗口,分别绘制 y = sinx, y = cosx, y = 2*sinxcosx和y = tanx的图像,定义域为[-π,π]
编写R程序如下:
par(mfrow = c(2, 2))
x <- seq(-pi,pi,by=0.1)
plot(x,sin(x),typ="l")
plot(x,cos(x))
plot(x,2*sin(x)*cos(x))
plot(x,tan(x))
绘图结果如下:
上图不是很好看,尤其是最后一幅图,下面对其改造如下:
par(mfrow = c(2, 2))
x <- seq(-pi,pi,by=0.01)
plot(x,sin(x),type="l",col=2)
plot(x,cos(x),type="l",col="green")
plot(x,2*sin(x)*cos(x),type="l",col="blue")
plot(x,tan(x),type="l",ylim=c(-30,30),col=6)
运行结果如下:
新闻热点
疑难解答