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

在ggplot2中高亮堆叠条形图的单个条形

高亮堆叠条形图指定分组的实现方案

你猜的完全没错!scale_fill_OkabeIto()的darken参数确实能帮我们实现这个高亮需求——只要给不同的ID分组设置差异化的明暗程度,就能轻松让中间条形(ID=2)颜色更深,两侧条形(ID=1、3)颜色变浅。

先把你的数据补全,再给你完整的实现代码:

完整代码示例

library(ggplot2)
library(colorblindr)

# 补全数据集
ID <- rep(1:3, each = 3)
group <- rep(letters[1:3], times = 3)
prop <- c(0.8, 0.1, 0.1, 0.6, 0.2, 0.2, 0.7, 0.15, 0.15)
df <- data.frame(ID, group, prop)

# 绘制带高亮效果的堆叠条形图
ggplot(df, aes(x = factor(ID), y = prop, fill = group)) +
  geom_col(position = "stack") +
  # 针对不同ID设置明暗:中间ID=2用原色,两侧ID=1/3调浅
  scale_fill_OkabeIto(darken = ifelse(df$ID == 2, 0, 0.3)) +
  labs(x = "ID", y = "Proportion", title = "Highlighted Stacked Bar Chart") +
  theme_minimal()

关键细节说明

  • darken参数支持传入数值向量,我们用ifelse()对每个数据点的ID做判断:
    • 当ID == 2时,设置darken = 0,保留Okabe-Ito调色板的原始深色
    • 当ID为1或3时,设置darken = 0.3(数值越大颜色越浅,你可以根据视觉需求调整这个值)
  • 这种方式会让每个堆叠条形内的三个分组颜色,随所属ID整体调整明暗,完美实现中间条形高亮的视觉效果

如果需要更精细的颜色控制,也可以手动指定颜色向量,但用scale_fill_OkabeIto()的darken参数是最贴合你需求的简洁方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:04:00