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

如何使用ggplot基于带count的聚合数据绘制直方图或密度图

基于聚合频数数据集绘制ggplot直方图/密度图的解决方案

完全可以直接基于带count统计值的聚合数据绘图,不需要先拆分为逐行个体的非聚合格式,你之前代码的问题是映射参数使用错误。

错误原因说明

geom_histogram识别的权重映射参数是weight,你在aes中写的count = count不属于该图层的标准映射字段,因此会被直接忽略。

正确代码示例

直方图绘制

library(tidyverse)

# 直接用聚合数据绘制直方图
data %>% 
  ggplot(aes(x = x, weight = count)) + 
  geom_histogram(bins = 5, fill = "steelblue", color = "white")

上述代码的逻辑是为每个x值指定对应的频数作为权重,ggplot在统计 bins 内的总频数时会自动按权重累加,输出结果和先展开为个体数据再绘图的结果完全一致。

密度图绘制

密度图同样支持weight参数,可直接使用聚合数据绘制:

data %>% 
  ggplot(aes(x = x, weight = count)) + 
  geom_density(fill = "orange", alpha = 0.3)

可选操作:展开聚合数据为个体格式

如果你需要先得到逐行的个体数据集,可以使用uncount()函数直接展开,不需要手动构造:

# 按count列展开为逐行个体数据
individual_data <- data %>% uncount(count)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:45:04