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

R语言绘制双Y轴图表时如何为第二个Y轴添加并调整标签位置

双Y轴标签重叠修复方案

你遇到的右侧Y轴标签和刻度重叠问题,是标签偏移量不足、右侧绘图边距预留不够导致的,修改后的可运行代码如下:

# 数据准备
years <- c(2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021)
levels <- c(646137, 450429, 279954, 190300, 191843, 411849, 481370, 626907)
percents <- c(71.9, 50.1, 31.2, 21.2, 21.4, 45.9, 53.6, 69.8)
allData <- data.frame(years, levels, percents)
levelsOverTime <- data.frame(years, levels)
percentsOverTime <- data.frame(years, percents)

# 调整绘图边距:依次为下、左、上、右边距,扩大右侧边距预留标签显示空间
par(mar = c(5, 4, 4, 5))

# 绘制容量占比曲线(左侧Y轴)
plot(percentsOverTime, type="l", ylab="大坝容量占比(%)", main="水位随时间变化情况", xlab="年份", col="blue", ylim=c(0, 100))

# 叠加蓄水量曲线
par(new = TRUE)
plot(levelsOverTime, type="l", xaxt="n", yaxt="n", ylab="", xlab="", col="red", ylim=c(0, 650000))

# 生成右侧Y轴
axis(side = 4)
# line参数控制标签向外偏移量,避免和刻度重叠
mtext("6座主要大坝总蓄水量(兆升)", side=4, line = 3)

# 可选补充:添加图例区分两组数据
legend("topright", legend = c("容量占比", "总蓄水量"), col = c("blue", "red"), lty = 1)

核心修改点说明

  • 提前通过par(mar = c(5,4,4,5))调整绘图边距,将默认的右侧边距从4单位扩大到5单位,避免标签超出绘图区域被截断
  • mtext中新增line = 3参数,side=4时line数值越大标签越靠外侧,设置为3可让标签完全避开刻度值,你也可以根据实际显示效果微调该数值(2-4区间都可尝试)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:48:04