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

如何在R语言ggplot2条形图中实现三色填充?

修改后的代码实现三色填充

直接调整数据分类逻辑与颜色映射,同时清理冗余绘图代码,最终实现支持红(输)/黄(平)/绿(赢)三色填充的条形图,代码如下:

plot1 <- ggplot(data=puck3 %>% 
                  mutate(win_loss = case_when(
                    wnls < 0 ~ "loss",
                    wnls == 0 ~ "draw",
                    wnls > 0 ~ "win"
                  )), 
                aes(x=GP, y=wnls, fill = win_loss)) +
  geom_col(width=0.5) +  # geom_col等价于stat="identity"的geom_bar,无需重复定义
  scale_fill_manual(values = c("loss" = "red", "draw" = "yellow", "win" = "green")) +
  ylim(-5,5)

关键改动说明:

  • 多类别划分:用case_when()替代原ifelse(),清晰划分出loss(-1)、draw(0)、win(1)三个结果类别,比嵌套ifelse可读性更强
  • 三色映射:在scale_fill_manual()中通过键值对明确绑定每个类别与对应颜色,添加平局的黄色映射,避免因类别顺序导致颜色匹配错误
  • 冗余代码清理:删除重复的geom_bar(stat="identity", width=0.5),因为geom_col()本身就是stat="identity"的条形图实现,二者保留其一即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:47:08