嘿,一张图中展示多个图表,要怎么弄哩? 试试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 ![]() ![]() 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 ![]() 步骤详细,一学就会 小锐课堂,乐于分享 更多好货,改日继续 |
|