R语言如何为ggplot geom_bar设置自定义条形图柱体颜色
问题解决方法
你现有代码无法应用自定义柱体颜色的原因很明确:你仅通过aes(fill = demo)将填充色映射到了demo列的分类值,但没有添加对应的标度配置指定使用你提前定义好的颜色向量,ggplot默认会调用内置的离散配色方案,不会自动读取你环境里的p1_demo_col变量。
直接在现有绘图代码链中添加scale_fill_manual(values = p1_demo_col)即可生效,修正后的完整代码如下:
# 预定义的自定义配色 p1_demo_col = c("#fef0d9", "#fdcc8a", "#fc8d59", "#d7301f") p1_demo <- a3_pre %>% ggplot(aes(x = demo)) + labs(x = "Demo", y = 'Count', title = "Histogram of Demo") + geom_bar(aes(fill = demo)) + # 新增:指定使用自定义填充色 scale_fill_manual(values = p1_demo_col) + theme(plot.title = element_text(hjust = 0.5)) + scale_y_continuous(limits=c(0,200))
注意事项
- 如果运行后发现柱体颜色和你预期的匹配关系错位,是因为
demo列的分类值排序和你配色向量的顺序不对应。你可以提前将demo列转换为因子,手动指定分类顺序和配色顺序一一对应即可,参考代码:
# 请将levels内的4个值替换为你demo列实际的4个取值,顺序和p1_demo_col的颜色顺序一一对应 a3_pre$demo <- factor(a3_pre$demo, levels = c("取值1", "取值2", "取值3", "取值4"))
内容的提问来源于stack exchange,提问作者Arden Stricke
相关产品推荐
相关产品推荐

