分享

就靠layout函数,一张图可展示多个图表!

 生物_医药_科研 2019-01-15

嘿,一张图中展示多个图表,要怎么弄哩?



试试R语言的layout()函数吧!



请听我慢慢道来


有时候我们需要在一张图中展示多个图表,在R语言中我们可以通过layout()函数分割画布来实现这一功能。


我们一起来看下如何通过layout()来分割画布吧!

layout()的一般格式为layout(mat)或layout(mat,widths,heights)

mat矩阵对象,用于划分窗口。矩阵中的每个值必须是0或者连续的正整数。例如1,2,3,……N。绘图时按照矩阵中的非0元素的数字顺序作图。

widths:宽度,设置列的宽度

heights 高度,设置行的高度

1


layout()函数通过矩阵来划分窗口

例如:

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

layout.show(3)  #通过layout.show(n)查看窗口

此时的矩阵为:

通过layout.show(n)查看窗口,我们可以看到如图1的窗口划分,与矩阵分布对应。


图1


2


接下来只要作图就可以了,绘图时会自动按照窗口数字的顺序作图,结果如图2。

plot(1:10, main='plot 1')

plot(1:10, main='plot 2')

plot(1:10, main='plot 3')


图2

3


layout函数中矩阵中的数字如果有0,那么该区域是不作图的。

例如:

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

layout.show(2)


此时的矩阵为:窗口如图3所示:


图3

4


plot(1:10,main='plot 1')

plot(1:10,main='plot 2')

作图后得到下图4的结果。


图4

5


如果想要调整窗口的宽和高,可以调整矩阵的数字分布,数字相同的为同一块。

nf<>

layout.show(nf)

我们可以看到此时的矩阵为:

layout分割的窗口如图5所示:


图5

6


也可以通过weight和hight设置各个窗口的宽高layout(mat,widths,heights)

nf<>

layout.show(nf)  #widths=c(2,1)设置列的宽度为2和1;heights=c(1,2)设置行的高度为1和2

得到的效果是一样的(图6)。


图6

7


再作图,就能得到我们想要的分布了!

plot(1:10,main='plot 1')

plot(1:10,main='plot 2')

plot(1:10,main='plot 3')


图7


步骤详细,一学就会

小锐课堂,乐于分享

更多好货,改日继续

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多