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

ggplot2 geom_bar:调整结果顺序、分组颜色及多结果场景代码修改

ggplot2柱状图调整方案

基础需求实现(Positive置左+分组a设蓝色)

要实现这两个需求,核心是调整类别显示顺序和自定义分组颜色,具体操作如下:

步骤1:固定结果类别的显示顺序

将result列转换为因子类型,把Positive设为第一个水平,就能让它显示在图表最左侧:

# 若原数据还有其他初始类别,补充到levels向量中即可
df$result <- factor(df$result, levels = c("Positive", "Negative"))

步骤2:绘制带自定义颜色的柱状图

用scale_fill_manual指定分组a的颜色为蓝色,其他分组可按需设置:

library(ggplot2)

ggplot(df, aes(x = result, y = count, fill = id)) +
  geom_col(position = "dodge") + # 分组并列显示,堆叠图可改为position = "stack"或移除该参数
  scale_fill_manual(values = c("a" = "blue", "b" = "orange")) + # 替换"b"为实际其他分组名,颜色可自定义
  labs(x = "结果类别", y = "计数") +
  theme_minimal()

多结果类别(Positive/Negative/Unknown/Small)的修改方案

当存在更多结果类别时,只需调整因子的水平顺序,同时扩展颜色映射即可:

调整多类别显示顺序

把需要优先显示的类别放在levels向量的前面,其余按需求排序:

df$result <- factor(df$result, levels = c("Positive", "Negative", "unknown", "small"))

扩展自定义颜色(可选)

如果有更多分组id,继续在scale_fill_manual的values中补充对应颜色:

ggplot(df, aes(x = result, y = count, fill = id)) +
  geom_col(position = "dodge") +
  scale_fill_manual(values = c(
    "a" = "blue", 
    "b" = "orange", 
    "c" = "green", 
    "d" = "red"
  )) + # 按实际分组id补充对应颜色
  labs(x = "结果类别", y = "计数") +
  theme_minimal()

关键说明

  • 因子水平的顺序直接决定x轴上类别的排列顺序,只需调整levels向量即可灵活切换位置。
  • 颜色设置支持颜色名称(如"blue")、十六进制代码(如"#1f77b4"),可根据需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:45:30