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

使用ggpattern修改颜色遇问题:箱图仅边框上色且出现随机色

解决ggplot2箱图填充色与图案设置问题

问题分析

你的代码存在两个核心问题:

  • 用color=Treatment2映射的是箱图边框颜色,而非内部填充色;叠加的普通geom_boxplot()使用了fill=Groups的默认配色,导致出现随机颜色
  • 同时调用geom_boxplot()和geom_boxplot_pattern()会生成重复图层,干扰最终显示效果

修正方案

调整映射逻辑并精简图层,让fill对应Ethanol分组(控制填充色),pattern对应MIA分组(控制图案):

cort_v %>%
  ggplot(aes(x=Groups, y=x, fill=Treatment2, pattern=Treatment1)) +
  # 仅保留geom_boxplot_pattern,移除重复的geom_boxplot
  geom_boxplot_pattern(
    position = position_dodge(preserve = "single"),
    color = "black",  # 统一设置箱图边框为黑色
    pattern_fill = "black",
    pattern_angle = 45,
    pattern_density = 0.1,
    pattern_spacing = 0.025,
    pattern_key_scale_factor = 0.6
  ) +
  # 用scale_fill_manual设置Ethanol分组的填充色
  scale_fill_manual(values = c("1" = "red", "0" = "white")) +
  # 保留图案映射的设置
  scale_pattern_manual(values = c(1 = "stripe", 0 = "none")) +
  geom_point() +
  theme_minimal()

关键改动说明

  • 将aes中的fill从Groups改为Treatment2,让Ethanol的1/0分组直接控制箱图内部填充色
  • 删除多余的geom_boxplot(),避免图层叠加导致的配色混乱
  • 用scale_fill_manual替代scale_color_manual,针对填充色而非边框色设置规则
  • 保留pattern映射和对应的scale_pattern_manual,维持MIA分组的图案区分效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:31:02