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

如何在ggplot图表中添加填充图案作为颜色外的区分标识并同步到图例

实现方案

要给ggplot2的图表同时添加颜色+填充图案区分分组,且图案同步显示在图例中,可以借助ggpattern扩展包实现,具体代码如下:

前置准备

首先安装加载所需包:

# 安装包(首次使用执行)
install.packages("ggpattern")
# 加载包
library(ggplot2)
library(ggpattern)

你的示例数据无需修改,可直接使用。

修改后的柱状图代码

ggplot(Data,aes(x=Direction, y=Delay, fill=Label))+
  # 替换原geom_bar为带图案的geom_bar_pattern,新增pattern映射到分组变量Label
  geom_bar_pattern(stat="identity",position="dodge",
                   aes(pattern = Label),
                   pattern_colour = "white", # 图案线条颜色
                   pattern_density = 0.3, # 图案密度
                   pattern_spacing = 0.02) + # 图案元素间距
  geom_text(aes(label=round(Delay)), position=position_dodge(width=0.9), vjust=-0.25) +
  scale_fill_manual(values = c("BB" = "#00BFCa", "WZ" = "#F8766D"))+
  # 手动配置不同分组的填充图案
  scale_pattern_manual(values = c("BB" = "stripe", "WZ" = "circle")) +
  xlab("Travel Direction")+ ylab("Aggregated Delay (hours)") +
  # 合并颜色和图案的图例,确保图例同时展示对应颜色+图案
  guides(fill=guide_legend(title=NULL),
         pattern = guide_legend(title=NULL)) + 
  theme(plot.title = element_text(size=12) )

修改后的箱线图代码

ggplot(Data, aes(x=Direction, y=Delay, fill=Label)) + 
  # 替换原geom_boxplot为带图案的geom_boxplot_pattern,新增pattern映射
  geom_boxplot_pattern(aes(pattern = Label), 
                       outlier.colour = 8, outlier.shape = 1,
                       pattern_colour = "white",
                       pattern_density = 0.3,
                       pattern_spacing = 0.02) + 
  scale_fill_manual(values = c("BB" = "#00BFCa", "WZ" = "#F8766D")) +
  scale_pattern_manual(values = c("BB" = "stripe", "WZ" = "crosshatch")) +
  xlab("Direction") + ylab("Delay") + ggtitle("By Direction") + 
  guides(fill=guide_legend(title=NULL),
         pattern = guide_legend(title=NULL)) + 
  theme(plot.title = element_text(size=12, hjust = 0.5)) 

可自定义调整说明

  • 可选填充图案类型:stripe(条纹)、crosshatch(交叉线)、circle(圆点)、rect(矩形)、wave(波浪线)等,可根据需求自行替换
  • 可通过调整pattern_density修改图案密度、pattern_spacing修改图案元素间距、pattern_colour修改图案线条颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:03