You need to enable JavaScript to run this app. ggplot分组错开(dodged)条形图叠加多线的边框与图例异常问题
优惠活动
大模型
产品
解决方案
定价
更多

ggplot分组错开(dodged)条形图叠加多线的边框与图例异常问题

问题核心原因

  1. 代码存在列名拼写错误:原始数据集的变量类别列是var_type、数值列是var_value,你后续筛选和绘图时写的water_type、water_val是不存在的字段,会直接报错。
  2. 你把color美学映射写在了ggplot的全局参数中,所有图层都会继承这个映射,导致条形图被自动加上了彩色边框,同时fill和color的图例被合并展示。

修正后可直接运行的代码

library(ggplot2)
library(dplyr)

mydata <- data.frame(month=c(2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,
                             10,10,10,10,10,10,10,10),
                   year=c(2016,2016,2016,2016,2017,2017,2017,2017,
                          2016,2016,2016,2016,2017,2017,2017,2017),
                   var_type=c("V1","V2","V3","V4","V1","V2","V3","V4",
                              "V1","V2","V3","V4","V1","V2","V3","V4",
                              "V1","V2","V3","V4","V1","V2","V3","V4"),
                   var_value=c(1,4,4,3,1,5,4,3,3,22,12,16,
                               3,23,12,16,12,8,7,8,3,8,7,8))

# 修正列名错误,拆分条形、折线数据集
bar_data <- mydata %>%
  filter(var_type %in% c("V1","V2"))
line_data <- mydata %>%
  filter(var_type %in% c("V3","V4"))

# 绘图逻辑调整
ggplot() +
  # 条形图层:仅映射fill,显式设置color=NA去掉边框
  geom_col(data = bar_data, aes(x = month, y = var_value, fill = var_type), 
           position = "dodge", color = NA) +
  # 折线图层:仅映射color,可按需调整线宽、是否加标记点
  geom_line(data = line_data, aes(x = month, y = var_value, color = var_type),
            size = 1) +
  geom_point(data = line_data, aes(x = month, y = var_value, color = var_type),
             size = 2) +
  ggtitle("V1 and V2") +
  scale_y_continuous(breaks = seq(0,25,10)) +
  xlab("Month") +
  ylab("(cm)") +
  facet_wrap(~year,nrow=2) +
  # 自定义配色与图例名称,可按需修改
  scale_fill_manual(values = c("V1" = "orange", "V2" = "green"), name = "条形变量") +
  scale_color_manual(values = c("V3" = "blue", "V4" = "red"), name = "折线变量")

修改说明

  • 取消了全局美学映射,将x、y、fill、color分别放到对应图层的aes中,避免跨图层继承不需要的属性。
  • 给geom_col显式设置color = NA,彻底去掉条形的彩色边框。
  • fill映射仅对应V1、V2两个条形变量,color映射仅对应V3、V4两个折线变量,两个图例相互独立,刚好生成4个独立条目,完全匹配需求。
  • 代码兼容R 3.6.1版本,无需额外升级依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:30:03