R_5th图形的组合

对于不同的图形的基本组合,我们可以通过mfrow= c(nrows,ncols)来创建按行填充的图形矩阵,同时 我们也可以通过mfcols = c(nrows,ncols)来创建按列填充的图形矩阵。

 

> attach(mtcars)
> opar < par (no.readonly =  T)

> par(mfrow = c(3,1))

> hist(wt)

> hist(mpg)

> hist(disp)

> par(opar)

> detach(mtcars)

 

可创建一个按31列填充的矩阵图形,如下图所示。

R_5th图形的组合

对于hist图,我们可以通过main = “” 或者ann = FALSE来禁用它的标注。

 

同样我们通过plot()相关参数,将其设置为mfrow = c(2,2)可以设定一个两行两列按行排列的矩阵图形。

 

我们同样也可以使用layout()行数在其中添加矩阵来进行相关的排列,它的排列方式会更加*并且可以通过矩阵设置来设置它各行各列的长宽。

 

比如下例:

> attach(mtcars)
> layout(matrix(c(1,1,2,3),2,2,byrow = T))
> hist(wt)
> hist(mpg)
> hist(disp)
> detach(mtcars)

 R_5th图形的组合

使用矩阵c(1,1,2,3)byrow = T 即可排列如上图所示的图形组合。

 

对于layout的矩阵排列,摘抄论坛上一些大神的解释如下:

 

第一种排列:
layout(matrix(c(1,2,3,4)))

layout.show(4)
系统默认按行分类,一共有,运行图形排列为:
1

2
3
4
第二种排列:
layout(matrix(c(1,2,3,4),2,2))

layout.show(4)
运行图形排列为:
1 2

3 4
等价于par(mfrow=c(2,2))

第三种:
layout(matrix(c(1,1,1,2,3,4,2,3,4),nr=3,byrow=T))#
按行
layout.show(4)

运行结果为:
1 1 1

2 3 4
2 3 4
在这里解释一下:
layout
函数默认是按行排列的,其中nr=3意思是分为3列,byrow是按行分裂
所以layout函数可以画出任何你想要的图形排列,只需输入排列矩阵。

 

widths = 各列的宽度组成的向量。

heights = 各行的高度组成的向量。

 

> attach(mtcars)
> layout(matrix(c(1,1,2,3),2,2,byrow = T),widths = c(3,1), heights = c(1,2))
> hist(wt)
> hist(mpg)
> hist(disp)
> detach(mtcars)

 

matrix 设置了c1123),22byrow =T ,表示设置的图形矩阵为

1    1

2    3

按照行排列,设置完矩阵后,设置它的列宽为第一列3,第二列1,行的高度为第一行1,第二行2,所以得出的图形如下所示:

 R_5th图形的组合

 

 

 

opar <- par (no.readonly = T)
> par(fig = c(0,0.8,0,0.8))
> plot (mtcars$wt, mtcars$mpg , xlab = "Miles Per gallon", ylab = "Car weight")
> par(fig = c(0,0.8,0.55,1),new =T)
> boxplot(mtcars$wt,horizontal = T, axes = FALSE)
> par (fig = c (0.65,1,0,0.8),new =T)
> boxplot(mtcars$mpg, axes = FALSE)
> mtext("Enhanced Scatterplot",side =3,outer = TRUE, line = -3)
> par(opar)

 

第一步先作一个散点图,使用fig设置散点图的基本变量。 fig  = c(x1,x2,y1,y2) 表示图形的 x1代表起点, x2 代表终点。 y1 、y2 同理。 设置的散点图为 横向范围0~ 0.8, 纵向范围0 ~0.8。

然后使用par函数设置新的变量,fig = c(0,0.8,0.55,1) 即可设置第一个箱线图的横向和纵向。

然后再使用par函数设置即可得到它的另一个箱线图。

 R_5th图形的组合

补充箱线图知识 :

 R_5th图形的组合