首页 > 编程 > R > 正文

R语言中使用par()函数实现同时绘制多幅图

2023-04-28 12:24:17
字体:
来源:转载
供稿:网友

在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))

绘图结果如下:

R语言中同时绘制多幅图

上图不是很好看,尤其是最后一幅图,下面对其改造如下:

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)

运行结果如下:

R中在同一绘图区绘制多幅图

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表