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

如何在R中创建以数值分组为X轴的条形图(非直方图)?

在R语言中绘制体长分组条形图

步骤1:准备数据与分组

首先用cut()函数对体长数据进行分组,明确区间和标签:

# 模拟数据集
length <- c(6,6,7,8,9,10,11,12,13,14,15,16,17,18,19,19,20,20,21,21,23,24,26,27,29,30,31,38,34,35,30,48,50)

# 定义分组区间,按5厘米为间隔,左闭右开(可按需调整)
groups <- cut(length, 
              breaks = seq(5, 55, by = 5), 
              labels = c("5-10", "10-15", "15-20", "20-25", "25-30", "30-35", "35-40", "40-45", "45-50", "50-55"),
              include.lowest = TRUE)

include.lowest = TRUE确保最小数值被包含在第一个分组,breaks设置覆盖所有数据的区间范围。

步骤2:统计每组频数

用table()函数统计每个分组的个体数量:

group_counts <- table(groups)
# 查看统计结果
group_counts

运行后会得到各区间的计数,比如"5-10"组对应6个个体,和你描述的一致。

步骤3:绘制条形图

方法1:Base R 原生绘图

直接用barplot()生成条形图:

barplot(group_counts, 
        main = "体长分组个体数量", 
        xlab = "体长区间(厘米)", 
        ylab = "个体数量", 
        col = "skyblue",
        las = 1) # las=1让y轴标签横向显示,提升可读性

方法2:ggplot2 绘图(美观且灵活)

若习惯用ggplot2,先安装加载包再绘图:

# 未安装ggplot2时先运行:install.packages("ggplot2")
library(ggplot2)

# 将统计结果转为数据框,适配ggplot2格式
count_df <- as.data.frame(group_counts)
colnames(count_df) <- c("体长区间", "数量")

ggplot(count_df, aes(x = 体长区间, y = 数量)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "体长分组个体数量", x = "体长区间(厘米)", y = "个体数量") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签避免重叠

这样就能得到以体长分组区间为X轴,分组计数为Y轴的条形图,完全区别于直方图的连续区间展示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:18:50