我正在尝试使用具有相同X轴但不同Y轴的数据集制作单个图。举个例子,我有这个数据集:
A1 <- rnorm(100)
B1 <- rnorm(100)
B2 <- rnorm(100)
B3 <- rnorm(100)
grid <- matrix(c(1:3),nrow=3,ncol=1,byrow=TRUE)
layout(grid)
plot(A1,B1)
plot(A1,B2)
plot(A1,B3)
这就是我得到的并且带有多个X轴:
我知道如何使用ggplot2
进行操作,但我正在寻找另一种方法,例如使用layout
。任何帮助将不胜感激。
答案 0 :(得分:0)
使用par(mar)和布局功能太容易了。
par(mar=c(6,6,4,4))
layout(matrix(1:3, ncol = 1), widths = 1, heights = c(2.3,2,2.3), respect = FALSE)
par(mar = c(0, 4.1, 4.1, 2.1))
plot(B1,A1,xaxt='n')
par(mar = c(0, 4.1, 0, 2.1))
plot(B2,A1,xaxt='n')
par(mar = c(4.1, 4.1, 0, 2.1))
plot(B3,A1)
答案 1 :(得分:0)
您可以
mfcol
中的par
参数设置打印数量,使用mar
留出边距,oma
添加空间到轴上用axis
和mgp
来设置将要制作的轴标签的空间。 axes = FALSE
制作无轴图。 box
在图周围添加框。 mtext
添加轴标签。 这是一个例子
set.seed(32273438)
A1 <- rnorm(100)
B1 <- rnorm(100)
B2 <- rnorm(100)
B3 <- rnorm(100)
par(mfcol = c(3, 1), mar = numeric(4), oma = c(4, 4, .5, .5),
mgp = c(2, .6, 0))
plot(A1, B1, axes = FALSE)
axis(2L)
box()
plot(A1, B2, axes = FALSE)
axis(2L)
box()
plot(A1, B3, axes = FALSE)
axis(1L)
axis(2L)
box()
mtext("A1", side = 1, outer = TRUE, line = 2.2)
mtext("B", side = 2, outer = TRUE, line = 2.2)
您可能会遇到重叠的y-ticks问题,但是您可以使用yaxp
的{{1}}参数来解决。