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

如何修改ggplot2图例标记的图案背景,提升图案可见度?

解决geom_col_pattern图例背景过暗导致图案不清的问题

你可以通过修改图例标记的背景色,同时调整图案颜色增强对比度,来解决这个问题:

  • 在theme()中添加legend.key = element_rect(fill = "white"),把图例标记的背景改为白色,让图案细节更清晰
  • 调整pattern_fill和pattern_colour的颜色(比如换成黑色),和白色背景形成更强对比,进一步提升辨识度

修改后的完整代码:

library(dplyr)
library(ggplot2)
library(ggpattern)

mycars <- mtcars %>% head(10)
mycars$gear <- as.character(mycars$gear)
mycars$am <- as.character(mycars$am)

ggplot(mycars, aes(x = rownames(mycars), y = mpg, pattern = vs, group = gear, fill = gear)) +
  geom_col_pattern(
    aes(pattern_density = am),
    position = position_dodge2(), 
    pattern = "stripe",
    pattern_fill = "black",  # 调整图案颜色增强对比
    pattern_colour = "black"
  ) +
  theme(
    strip.text = element_text(size = 4),
    legend.position = "right", 
    axis.ticks.x = element_blank(),  
    axis.line.x = element_blank(),
    axis.text.x = element_blank(), 
    axis.title.x = element_blank(),
    legend.key = element_rect(fill = "white")  # 设置图例标记背景为白色
  )

如果需要更细致的调整,还可以:

  • 调整pattern_density的取值范围,让图案密度更适配展示需求
  • 更换pattern类型(比如"crosshatch"),提升不同分组的辨识度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:07:18