在R

时间:2015-07-09 14:07:01

标签: r plot

当您使用par(mfrow = c())函数绘制不同的绘图时,我想知道是否有一种方法可以在R中定义绘图的大小。

举一个简单的例子:

par(mfrow = c(3,1))
plot(1:2)
plot(1:2)
plot(1:2)

所有地块的大小都相同。

例如,是否可以使第三个图的大小不同? 例如,它的大小是其他情节的一半吗?

如果我使用它:

par(mfrow = c(3,1))
plot(1:2)
plot(1:2)
plot(1:2, ylim =c(0,1))

ylim轴改变但没有图的大小。

谢谢。

2 个答案:

答案 0 :(得分:18)

试试layout 例如

layout(matrix(c(1,1,2,3,4,4), nrow = 3, ncol = 2, byrow = TRUE))
plot(1,main=1)
plot(2,main=2)
plot(3,main=3)
plot(4,main=4)

enter image description here

layout(matrix(c(1,1,2,1,1,2,3,4,4), nrow = 3, ncol = 3, byrow = TRUE))
plot(1,main=1)
plot(2,main=2)
plot(3,main=3)
plot(4,main=4)

给你 enter image description here

您也可以使用par(fig= ) 例如

par(mar=c(2,2,2,1))
par(fig=c(0,7,6,10)/10)
plot(1,main=1)
par(fig=c(7,10,6,10)/10)
par(new=T)
plot(2,main=2)
par(fig=c(0,7,0,6)/10)
par(new=T)
plot(3,main=3)
par(fig=c(7,10,0,6)/10)
par(new=T)
plot(4,main=4)

给你 enter image description here

但我认为布局更适合使用

答案 1 :(得分:0)

另一个选择是使用ggarrange。这样做的好处是,您不仅可以在地块上使用ggarange,还可以在用ggarrange创建的“已安排”地块上使用ggarange,这使您可以轻松地首先安排例如两个较小的地块,然后与一个较大的地块一起排列。