失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > r语言 四格画图_R绘图基础(一)

r语言 四格画图_R绘图基础(一)

时间:2019-05-10 16:56:16

相关推荐

r语言 四格画图_R绘图基础(一)

R绘图的布局排版

之前提到,mfrow,mfcol只能是矩阵式的布局,如果我们需要简单地实际不规则的布局,怎么办呢?强大的layout(),split.screen()专门用于布局。有资料提到“split.screen()函数与其它函数是不兼容的(比如layout(),coplot()),不可以用于多个绘图设备,而且它们的使用仅限于象图形式探索型数据分析这样的问题”,很晕,搞不懂的+_+...希望有人能指点O(∩_∩)O~。所以这里只介绍强大的layout()函数。

函数layout()把当前的绘图设备分割为多个部分,绘制的图形将一次显示在个恶搞部分中,它主要自变量是一个元素都是整数的的矩阵,元素标识了子窗口(sub-windows)的编号。

layout(mat, widths = rep(1, ncol(mat)), heights = rep(1,nrow(mat)),respect = FALSE)

其中,mat就是一个距阵,假设我们要画N个图,那么,mat就要描述每个图所在的位置,其中1…N-1都必须至少出现过一次。比如有三个图,我们希望的布局是第一排有一个图,第二排有两个图,那么mat

attach(mtcars) #使用attch加载需要的包mtcars包,可以直接使用包里面提供的数据,便于绘图测试

layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))

hist(wt) #绘制wt的柱形图

hist(mpg)

hist(disp)

layout函数布局0

那么参数中的widths和heights就是用来指定每行或者每列的宽度和高度的。我们可以做以下的比较:

attach(mtcars)layout(matrix(c(1,1,1,1,2,2,2,3,2,2,2,3),3,4,byrow=TRUE))

hist(wt)

hist(mpg)

hist(disp)

layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE), widths=c(3,1), heights=c(1,2))

hist(wt)hist(mpg)

hist(disp)

loyout函数布局1

这两种方法得到的是相同的结果,在代码的书写上,第2种方法要更清晰一些。想象一下,似乎每个图的位置必须是连在一起的小矩阵,如果,不构成连在一起小矩阵,会成为怎么样的一个结果呢?

attach(mtcars)

layout(matrix(c(1,1,2,1,1,1),nrow=2,ncol=3,byrow=T))

hist(wt)

hist(mpg)

layout函数布局2

如果需要大图,小图,内嵌图这layout()虽然很容易实现,但多少有点麻烦,不是那么随心所欲。还是回过头来使用par()吧。使用par()的中fig=在画布任意位置上画图。在使用fig参数时,需要把画布理解成左下角为坐标(0,0),右上角为(1,1)的一个坐标系。fig=c(x1,x2,y1,y2)来设置该参,x1

par(fig=c(0,0.85,0,0.85), new=F)

plot(mtcars$wt, mtcars$mpg, xlab="Miles Per Gallon",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(fig=c(0.4,0.75,0.4,0.7),new=TRUE,mar=c(2,2,0,0),mgp=c(1,.4,0),cex=1,cex.lab=0.7,cex.axis=0.7)

hist(mtcars$mpg, main="")

layout函数布局3

好了,关于R绘图基础和布局的内容先介绍到这里。如果理解错误的地方,希望能过帮忙指正更改。谢谢O(∩_∩)O~

如果觉得《r语言 四格画图_R绘图基础(一)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。