使用基底 R 图并排绘制两个图,具有共享的 titel 和共享的 x 轴标签

Two plot side by side using base R plots, with shared titel and shared x-axis label

提问人:Linus 提问时间:10/18/2023 更新时间:10/19/2023 访问量:54

问:

我正在尝试使用基本 R 并排绘制两个图。

我希望他们共享标题以及 x 轴和 y 轴标签。 但是,图的范围不同,所以我想保留标签的数量。

我已经看到有一些解决方案使用 ,但是,它们似乎过于复杂。par()

我尝试了以下解决方案:layout()

dev.off()
# Create a layout with two plots

layout(matrix(c(1, 2), nrow = 1))

# Create the first plot
plot(1:10, 1:10, main = "Plot 1", type = "l", col = "blue", xlab = "")

# Create the second plot without the x-axis
plot(1:10, (1:10)^2, main = "", type = "l", col = "red", xlab = "")

# Draw the x-axis in the middle of the two plots
axis(side = 1, at = 5, labels = FALSE)

# Add labels to the x-axis if needed
mtext("Common X-axis Label", side = 1, line = 2)

# Reset the layout
layout(1)

但是,我无法将 x 轴标签和主标题放在情节的中心? 关于如何做到这一点的任何想法?

我尝试使用 将 x 轴标签放在两个图的中心。line = 2

现在它看起来像这样:

enter image description here

R Yaxis X 轴

评论


答:

5赞 Friede 10/18/2023 #1

这并不过于复杂。我想你正在寻找

outer = TRUE 

这就可以了。

layout(matrix(c(1, 2), nrow = 1))
plot(1:10, 1:10, main = "", type = "l", col = "blue", xlab = "")  # Create the first plot
plot(1:10, (1:10)^2, main = "", type = "l", col = "red", xlab = "")  # Create the second plot 
mtext("My Multiplot Title", side = 3, line = -2, outer = TRUE)
mtext("Common X-axis Label", side = 1, line = -2, outer = TRUE)

创建于 2023-10-18 使用 reprex v2.0.2

评论

0赞 Linus 10/18/2023
工程!我还有办法减少地块之间的距离吗?
1赞 Friede 10/18/2023
当然,替换为参数指定的向量中的第二个和第四个值并播放。请阅读帮助页面!layout(matrix(c(1, 2), nrow = 1))par(mfrow = c(1, 2), mai = c(1, .4, 1, .4))mai