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
相关产品推荐
相关产品推荐

