如何用Base R绘制共享标题与X轴标签的并排子图?
解决Base R并排子图共享标题与轴标签居中问题
直接修改你的代码,核心是利用mtext()的outer参数让标签基于整个绘图设备居中,同时调整边距避免重叠:
dev.off() # 调整全局边距:底部留3行放共享X轴,顶部留3行放总标题,左右按需设置 par(mar = c(3, 4, 3, 1)) # 创建1行2列的布局 layout(matrix(c(1, 2), nrow = 1)) # 第一个子图:去掉xlab,保留子标题(不需要可以删掉main) plot(1:10, 1:10, main = "Plot 1", type = "l", col = "blue", xlab = "") # 第二个子图:去掉xlab和main plot(1:10, (1:10)^2, main = "", type = "l", col = "red", xlab = "") # 添加居中的共享X轴标签:outer=TRUE表示基于整个设备区域 mtext("Common X-axis Label", side = 1, line = 1.5, outer = TRUE) # 添加居中的总标题 mtext("Overall Title", side = 3, line = 1.5, outer = TRUE, cex = 1.2, font = 2) # 重置布局和边距 layout(1) par(mar = c(5,4,4,2)+0.1) # 恢复默认边距
关键修改说明:
par(mar = ...):调整子图的边距,给顶部和底部留出足够空间放置总标题和共享X轴标签,避免和子图内容重叠。mtext(outer = TRUE):默认mtext只在当前活动子图的区域内定位,开启outer=TRUE后,会以整个绘图窗口为参考系,自然实现居中效果。- 两个子图都设置
xlab = "",避免重复的X轴标签,把空间留给共享标签。
内容的提问来源于stack exchange,提问作者Linus
相关产品推荐
相关产品推荐

