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

如何在R语言直方图中设置特定区间及起始值?

如何在ggplot中固定直方图的分箱起始值和区间

要实现从x=28开始、箱宽为4的分箱,有两种简洁的方法:


方法1:使用boundary参数(推荐)

这个参数可以直接指定分箱的起始边界,配合binwidth=4就能自动生成符合要求的分箱区间:

crushing_strength <- c(40,37.9,29,31.7,39.3,40.7,42.7,40,50.3,
                       33.8,39.3,42.1,45.5,41.4,47.6,38.6,35.9,
                       41.4,44.1,40,40.7,42.1,38.6,36.5,40.7)
test_no <- seq(1:25)

data_example <- data.frame(test_no,crushing_strength)

ggplot(data_example, aes(x = crushing_strength))+
  geom_histogram(binwidth=4, boundary=28, fill="steelblue", color="black")+
  scale_x_continuous(breaks=seq(28, 52, 4))
  • boundary=28:强制分箱从28开始,后续按binwidth=4的间隔划分(28-32、32-36...)
  • scale_x_continuous(breaks=seq(28, 52, 4)):让x轴刻度和分箱区间对齐,提升可读性
  • fill和color参数用于美化直方图,可根据需求调整

方法2:手动定义分箱端点

如果需要完全控制所有分箱范围,可以直接用breaks参数指定所有分箱的端点序列:

ggplot(data_example, aes(x = crushing_strength))+
  geom_histogram(breaks=seq(28, 52, 4), fill="steelblue", color="black")+
  scale_x_continuous(breaks=seq(28, 52, 4))
  • seq(28,52,4)生成从28到52、步长为4的序列,正好覆盖数据中的最大值(50.3)
  • 这种方法适合需要精确指定分箱数量或端点的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:58:09