You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言并排绘制的条形图间距过近,如何增大两个图表的间距

解决方法

你遇到的并排条形图间距过近问题,可通过调整R基础绘图系统的边距参数实现,具体方案如下:

核心调整逻辑

基础绘图系统中par()的mar参数格式为c(下, 左, 上, 右),单位为行宽,两个并排子图的中间间距 = 左侧子图的右外边距 + 右侧子图的左外边距。你当前左侧图的右外边距仅设置为1,适当调大该值即可快速拉开间距。
另外你代码末尾多了一行冗余的par(mfrow=c(1,2)),可以直接删除。

修改后可直接运行的代码

par(mfrow=c(1,2)) # 设定1行2列的子图布局
# 调整左图边距:把第4个参数(右外边距)从1改为4,可根据实际显示效果自由调整数值大小
par(mar = c(4, 7, 1, 4)) 
barplot(height = table(s50_1995$Smoking_status), 
        main = "吸烟状态", xlab = "", ylab = "", 
        font.lab = 2, col.lab = "Red", cex.lab = 1.5, 
        xlim=c(0,40) ,col = 1:3, horiz = TRUE, las = 2) 

mtext("吸烟状态", side=2, line=6)  
mtext("学生人数", side=1, line=2) 

par(mar = c(4, 7, 1, 3)) # 右图边距保持不变即可,也可微调左外边距进一步调整间距

barplot(height = table(s50_1995$Sport_participation), 
        main = "运动参与情况",
        xlab = "", ylab = "", 
        font.lab = 2, col.lab = "Red", 
        cex.lab = 1.5,
        xlim=c(0,40) ,
        col = 1:3, horiz = TRUE, las = 2)
mtext("运动参与状态", side=2, line=6)
mtext("学生人数", side=1, line=2)

进阶精准控制方案

如果需要更灵活的间距控制,也可以用layout()函数替代mfrow参数,支持自定义子图宽度和空白占位:

# 设定布局:1行3个位置,第1、3位放图,第2位留空做间距
layout(matrix(c(1,2,3), nrow=1), widths = c(1, 0.15, 1))
# 绘制第一个图
par(mar = c(4,7,1,1))
barplot(height = table(s50_1995$Smoking_status), 
        main = "吸烟状态", xlab = "", ylab = "", 
        font.lab = 2, col.lab = "Red", cex.lab = 1.5, 
        xlim=c(0,40) ,col = 1:3, horiz = TRUE, las = 2) 
mtext("吸烟状态", side=2, line=6)  
mtext("学生人数", side=1, line=2) 
# 第二个位置为空白占位,无需绘图
# 绘制第三个位置的第二个图
par(mar = c(4,7,1,3))
barplot(height = table(s50_1995$Sport_participation), 
        main = "运动参与情况",
        xlab = "", ylab = "", 
        font.lab = 2, col.lab = "Red", 
        cex.lab = 1.5,
        xlim=c(0,40) ,
        col = 1:3, horiz = TRUE, las = 2)
mtext("运动参与状态", side=2, line=6)
mtext("学生人数", side=1, line=2)

内容的提问来源于stack exchange,提问作者user17513903

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:54:03