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

如何调整ggplot2中SST的次级Y轴起始值至20?

解决ggplot2次级Y轴起始值调整问题

你之前只修改次级轴的breaks没用,因为SST数据点的位置是由av_SST /10这个映射关系决定的——单纯改轴刻度只是隐藏了0-20区间,数据点的实际位置根本没变化。要让SST数据点靠近RI数据,得重新定义SST到主Y轴的映射规则,同时对应调整次级轴的转换逻辑:

修改思路

  1. 把SST的起始值20映射到主Y轴的合理位置(比如主轴的0点),通过线性转换压缩SST数据的取值范围,让它和RI数据的范围重叠
  2. 同步调整次级轴的转换公式,确保刻度对应正确的SST数值
  3. 给次级轴设置从20开始的刻度

修改后的完整代码

# 先锁定SST的起始值,计算最大值方便后续设置刻度
min_sst <- 20
max_sst <- max(average_RI_per_month_species$av_SST)
# 转换系数:数值越小,SST数据点在主轴上的位置越高,可根据RI的实际范围调整
scale_factor <- 5

ggplot(average_RI_per_month_species, aes(x = factor(month))) +
  geom_point(aes(y = avg_RI, color = species, shape = "RI"), size = 3) +
  geom_line(aes(y = avg_RI, color = species, linetype = species), size = 1) +
  # 调整SST映射逻辑:将SST从[20, max_sst]压缩到主轴的[0, (max_sst-20)/scale_factor]区间
  geom_point(aes(y = (av_SST - min_sst)/scale_factor, shape = "SST"), color = "black", size = 3, alpha = 0.7) +
  geom_line(aes(y = (av_SST - min_sst)/scale_factor), color = "black", size = 1, alpha = 0.7) +
  scale_y_continuous(
    name = "Average RI",
    # 次级轴还原SST真实数值
    sec.axis = sec_axis(~ .*scale_factor + min_sst, 
                        name = "Average SST (°C)",
                        # 设置次级轴从20开始的刻度
                        breaks = seq(min_sst, max_sst, by = 5))
  ) +
  labs(
    title = "Monthly Average RI and SST", 
    x = "Month", 
    color = "Species", 
    shape = "Metric", 
    linetype = "Species"
  ) +
  scale_x_discrete(labels = month.abb) +
  scale_color_manual(values = c("Galapagos" = "blue", "Silky" = "red")) +
  scale_shape_manual(values = c("RI" = 16, "SST" = 17)) +  # 16=实心圆,17=实心三角
  theme_minimal()

关键调整点

  • 把av_SST /10替换成(av_SST - 20)/scale_factor:让SST的最小值20对应主轴的0,后续数值按比例压缩
  • 次级轴的转换函数从~ .*10改成~ .*scale_factor +20:把主轴的映射值还原回真实的SST温度
  • 给次级轴明确设置breaks = seq(20, max_sst, by=5):确保刻度从20开始,按5的间隔递增

你可以根据RI数据的实际范围调整scale_factor:如果RI数据在0-5,把scale_factor设为2的话,SST(20-30)会转换为0-5,和RI完全重叠;设为5的话转换为0-2,会在RI数据的下方区域,按需调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:05:14