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

R语言ggplot2绘制双Y轴图调整次轴后对应线条无响应问题求解

R语言ggplot2双Y轴曲线不匹配问题解决方案

问题根因

ggplot2的次坐标轴仅作为刻度标注层存在,不会自动对输入的绘图数据做尺度转换。你当前仅在次轴配置中做了~./100的刻度转换,但taxa_consumo的原始数据仍直接映射到了适配saldo_consumo大数值范围的主Y轴上,因此曲线尺度不匹配,显示位置异常。

修正后代码

library(ggplot2)
library(ggthemes) # 对应theme_economist主题依赖

theme_set(theme_economist())

g1 = ggplot(Base) + 
  aes(x = data) + 
  geom_smooth(aes(y = saldo_consumo, col = "Saldo da carteira para consumo"))

# 关键修改:对taxa_consumo做*100的逆转换,匹配次轴的/100刻度规则
g2 = g1 + 
  geom_smooth(aes(y = taxa_consumo * 100, col = "Taxa média para consumo"))

g3 = g2 + 
  scale_y_continuous(sec.axis = sec_axis(~./100, name = "Taxa média para consumo"))

g4 = g3 + 
  scale_color_manual(values = c("brown", "gold")) +
  labs(title = "Saldo e Taxa de Microcrédito para Consumo", 
       x = NULL, 
       colour = NULL,
       y = "Saldo da carteira para consumo")

g4

补充说明

  • 双Y轴图表容易造成读数混淆,ggplot2官方并不推荐使用该类图表,非必要场景下建议拆分为两个独立子图展示两组数据
  • 若必须使用双Y轴,需严格保证数据转换逻辑和次轴刻度转换逻辑完全对应:如果次轴设置为~./N,那么对应的数据需要提前乘以N再映射到Y轴

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:05