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

求助:为带分类X轴的堆叠柱状图添加geom_line失败

解决思路
  • 核心问题:你用group=arsintervall完全错了——每个arsintervall是单独的分类,每个分类下只有一个净值数据点,分组后每个组只有一个点,根本画不出线条。
  • 修正方案:
    1. 把geom_line的group参数设为固定常数(比如group=1),强制ggplot将所有X轴分类的净值点视为同一组,这样就能连线。
    2. 调整图层顺序:把geom_line放在geom_col(或geom_bar)之后,避免被堆叠柱子挡住,建议搭配geom_point让数据点更清晰。
    3. 可选优化:如果arsintervall是年份区间(比如"2018-2019"),把它转成有序因子,确保X轴按时间顺序排列,线条连接逻辑才正确。

示例代码

# 基础堆叠柱状图 + 净值线条
ggplot(your_data, aes(x = arsintervall)) +
  # 堆叠柱状图部分(fill对应你的分组变量)
  geom_col(aes(y = your_stack_value, fill = your_category), position = "stack") +
  # 净值线条:group=1是关键,指定y为净值列
  geom_line(aes(y = nettoforandring_mellan_ar_1_och_2, group = 1), 
            color = "#2c3e50", size = 1.2) +
  # 搭配数据点,更直观
  geom_point(aes(y = nettoforandring_mellan_ar_1_och_2), 
             color = "#e74c3c", size = 2.5) +
  # 可选:设置X轴顺序(替换成你的实际年份区间)
  scale_x_discrete(limits = c("2017-2018", "2018-2019", "2019-2020", "2020-2021"))

额外说明

如果你的nettoforandring_mellan_ar_1_och_2列有重复值或者每个arsintervall对应多个值,需要先做聚合,确保每个分类X轴对应唯一的净值数值(比如用dplyr::group_by(arsintervall) %>% summarise(nettoforandring_mellan_ar_1_och_2 = sum(xxx)))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:52:19