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

如何按Quality数值分组变量?ggplot2柱状图分组优化需求

解决方法

问题出在你直接用原始观测数据绘图,每个数据行对应一个独立的堆叠小块,导致相同Quality的类别分散。要实现相同Quality分组展示,需要先统计每个读者ID下各质量等级的频次,再基于汇总数据绘图:

步骤1:统计各分组的频次与占比

使用dplyr包对数据进行汇总统计:

library(dplyr)
library(ggplot2)

# 模拟原始数据
Quality <- sample(1:4, 300, replace = TRUE)
reader_ID <- rep(1:3, each = 100)
df <- data.frame(Quality, reader_ID)

# 统计每个reader_ID + Quality组合的数量,并计算占比
df_summary <- df %>%
  count(reader_ID, Quality) %>%
  group_by(reader_ID) %>%
  mutate(percentage = n / sum(n)) %>%
  ungroup()

步骤2:基于汇总数据绘制分组堆叠柱状图

用汇总后的数据绘图,相同Quality的类别会自动合并为一个完整的块:

quality_percentage <- ggplot(df_summary, aes(x = reader_ID, y = percentage, fill = factor(Quality))) +
  geom_bar(stat = "identity", position = "fill") +
  # 将y轴转换为百分比格式
  scale_y_continuous(labels = scales::percent) +
  # 设置坐标轴和图例标签
  labs(x = "读者ID", y = "占比", fill = "质量等级") +
  theme_minimal()

quality_percentage

这样生成的堆叠柱状图中,每个读者ID对应的柱子里,相同质量等级的部分会集中在一起,不会出现分散的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:45:54