大数跨境
0
0

R数据可视化|图形初阶(下)

R数据可视化|图形初阶(下) 交点AI
2020-11-13
2

点击上方蓝色字关注


生信小白君













NO8. R数据可视化|图形初阶(下)




路上,永远年轻,永远热泪盈眶。



--杰克.凯鲁亚克

                                      2020.11.13

                                    


Hi朋友


我是小白君, 很高心遇见你


01

图形的组合


 如你所见,本篇文章将是R数据可视化|图形初阶系列最后一篇文章,即图形的组合及其布局的精细调控[1]

在R中可使用par( )或 layout( )将多幅图形组合为一幅总括图。在par( )函数中可使用图形参数 mfrow=c (nrows,ncols)来创建按行填充的、行数为nrows、列数为ncols 的图形矩阵。mfcol=c(nrows,ncols)来按列填充矩阵

举例如下,以下代码实现创建四幅图并将它们分布在两行两列中


attach(mtcars)
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2))#按行填充,2行2列
plot(wt,mpg,main="Scatterplot of wt vs. mpg")        
plot(wt,disp,main="Scatterplot of wt vs dish")
hist(wt,main="Histogram of wt")                
boxplot(wt,main="Boxplot of wt")     
par(opar)
detach(mtcars)

<以上代码可复制粘贴,可往左滑>


运行结果:





layout( )的调用形式为layout(mat),mat是一个矩阵,指定了所要组合的多个图形的所在位置。如下代码展现的是一幅图被置于第1行,另两幅图被置于第2行:


attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE))#创建矩阵
hist(wt)
hist(mpg)      
hist(disp)
detach(mtcars)

<可往左滑>


运行结果:


在 layout( )函数中可使用 widths= 和 heights= 两个参数来精确的控制每幅图的大小。

其形式为:

widths=各列宽度值组成的一个向量

heights=各行高度值组成的一个向量

相对宽度通过数值指定,而绝对宽度则可通过函数lcm(  )来指定。举例如下:


attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE),
widths=c(3,1),heights=c(1,2))
hist(wt)      
hist(mpg)
hist(dish)
detach(mtcars)

<可往左滑>


运行结果:



02

图形布局的精细控制



图形参数fig=可以实现对图形布局的精细调控,以下代码在散点图上添加两幅箱线图并创建了单幅的增强型图形。


opar <-par(no.readonly=TRUE)   
par(fig=c(0,0.8,0,0.8)#设置散点图
plot(mtcars$wt,mtcars$mpg,xlab="Miles Per Gallo",ylab="Car Weight")   par(fig=c(0,0.8,0.55,1),new=TRUE)
boxplot(mtcars$wt,horizontal=TRUE,axes=FALSE)#上方添加箱线图 par(fig=c(0.65,1,0,0.8),new=TRUE       boxplot(mtcars$mpg,axes=FALSE) #在右侧添加箱线图          mtext("Enhanced Scatterplot",side=3,outer=TRUE,line=-3   par(opar)

<可往左滑>

如图所示:





References


[1] R in Action Data Analysis and Graphics with R

 


完结撒花


我是GGabriel Liu一位三观比五官更正,思想比套路更深的分享者。


                     2020年11月13日



END


公众号ID:gggabrielliu

长按指纹识别二维码关注

转发,点赞,在看,安排一下?



【声明】内容源于网络
0
0
交点AI
专注于分享人工智能 (AI) 前沿技术、行业最新动态,以及AI在生物研究、医疗健康、农业发展和科技创新等领域的多元化应用,为读者呈现人工智能驱动下的未来趋势和实践案例。
内容 21
粉丝 0
交点AI 专注于分享人工智能 (AI) 前沿技术、行业最新动态,以及AI在生物研究、医疗健康、农业发展和科技创新等领域的多元化应用,为读者呈现人工智能驱动下的未来趋势和实践案例。
总阅读0
粉丝0
内容21