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

如何在R中绘制按类别统计计数的表格数据并自定义分箱

R类别计数表格可视化及分箱方案

一、直接利用原始表格的x、y列绘制带标签的柱状图

你之前只传入y向量绘图无法关联x信息,是因为没有指定x轴的标签映射,两种常用实现方式如下:

1. 基础R实现

# 构造示例数据,实际使用时可以用read.table/read.csv读取你的表格
df <- data.frame(
  x = c(100,90,80,70,60,50,40,30,20,10),
  y = c(1954,106,700,27,861,32,5491,936,7364,408)
)

# 直接绘制,names.arg参数指定x轴标签,无需手动添加
barplot(
  height = df$y,
  names.arg = df$x,
  xlab = "类别x",
  ylab = "出现次数y",
  col = "skyblue"
)

2. ggplot2实现(更推荐,后续调整样式更方便)

library(ggplot2)

ggplot(df, aes(x = factor(x), y = y)) +
  geom_col(fill = "skyblue") + # geom_col默认直接用y值作为柱高,不需要额外统计转换
  labs(x = "类别x", y = "出现次数y") +
  theme_minimal()

二、多类别场景的分箱聚合绘图

当类别数量过多时,先对x做分箱、再聚合对应y的总和后绘图即可,以你要求的「≤50」和「>50」两个分箱为例:

library(dplyr)
library(ggplot2)

# 1. 生成分箱标签,breaks参数可自定义分箱断点
df$bin <- cut(
  df$x,
  breaks = c(-Inf, 50, Inf), # 分箱区间:负无穷到50,50到正无穷
  labels = c("≤50", ">50"), # 对应分箱的显示标签
  include.lowest = TRUE
)

# 2. 按分箱聚合总出现次数
bin_df <- df %>%
  group_by(bin) %>%
  summarise(total_count = sum(y))

# 3. 绘制分箱后的柱状图
ggplot(bin_df, aes(x = bin, y = total_count)) +
  geom_col(fill = "coral") +
  labs(x = "分箱区间", y = "总出现次数") +
  theme_minimal()

如果需要调整分箱粒度,只需要修改cut函数的breaks参数即可:比如要每20个单位为一个箱,就设置breaks = seq(0, 100, 20),再对应调整labels参数即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:54:00