R语言ggplot设置指定分组颜色、其余同色并合并图例标签
# 加载依赖包 library(ggplot2) # 示例数据 df = data.frame(fc_col = c(rep('apple',3),rep('orange',3),rep('banana',3)), var1 = c(rep(1:3,3)), var2 = c(20,10,5,30,15,2,40,27,8)) # 构造颜色映射规则 # 如果fc_col是因子类型,把unique(df$fc_col)替换为levels(df$fc_col)即可 all_groups <- unique(df$fc_col) color_map <- setNames(rep("blue", length(all_groups)), all_groups) color_map["apple"] <- "black" # 补充图例统一标签对应的颜色 color_map["fruits"] <- "blue" # 绘图代码 ggplot(data=df, aes(x=var1, y=var2, colour = fc_col)) + geom_line() + scale_color_manual( values = color_map, breaks = c("apple", "fruits"), labels = c("apple", "fruits"), name = "分组" # 可自行修改图例标题,不需要可删除该行 )
方案说明
- 自动批量匹配所有分组颜色:仅将
apple设为黑色,其余所有分组统一设为蓝色,即使分组数多达数百个也不需要手动逐个配置,自动适配 - 图例自动合并:通过
breaks参数控制仅展示apple和统一命名的fruits两个图例条目,其余分组不会单独出现在图例中 - 非apple分组的线条仍然保持独立,不会被合并为单条线,仅颜色统一为蓝色,完全匹配需求
内容的提问来源于stack exchange,提问作者moth
相关产品推荐
相关产品推荐

