r - 如何生成直方图,使其在 ggplot2 的设定范围之间恰好有 n 个 bin?
问题描述
我有一个数据向量,可以取 1 到 100 之间的值。当我绘制一个 bin 大小为 10 的直方图时,我希望有 10 个 bin 的范围为 1-10、11-20 等。然而,我最终得到一个看起来像这样的情节:
如您所见,外部 bin 的范围超出了我的数据可以采用的值的范围(0 和 100)。
有没有一种方法可以生成直方图,使其在设定范围之间恰好有 n 个 bin?
解决方案
breaks
您可以使用 to 的参数做任何您想做的事情geom_histogram
。如果你喜欢,你可以设置特定的(和任意的)binwidths。该breaks
参数覆盖bins
andbinwidth
参数。
library(ggplot2)
set.seed(123)
x <- data.frame(x = sample(1:100, 1000, replace = TRUE))
ggplot(x) +
geom_histogram(aes(x), breaks = c(0, 13, 27, 45, 88, 100), color = "black") +
scale_x_continuous(breaks = c(0, 13, 27, 45, 88, 100))
如果您希望在特定范围内(例如 0-100)有 n 个相等的 bin,请使用breaks = seq(0, 100, 100/n)
. 如果您想要一个比数据更宽的范围,这将很有用。例如,在我的随机样本中,不存在大于 91 的值,但我知道 100 是可能的值,因此我的 bin 需要扩展到 100。
推荐阅读
- git - 在 git repos 中引入、更新和使用子模块
- javascript - React - 以匹配的排序顺序渲染孩子?
- selenium - 在自动化测试中,selenium 是一个框架或工具或库,很少有人提到它有框架,很少有人作为工具和其他人作为库?
- python - 列表索引不识别类对象;结果属性错误
- java - 等待 Firebase 实时数据库查询的结果
- javascript - Expo Android there is a white flicker when switching from bottom tab navigator to material top tab navigator
- magento2 - 来自联接表的自定义列未知
- html - Bootstrap 5:左侧导航菜单,药丸无法正常工作
- java - 如何转换单
到 json 然后在@interceptor 中打印它 - php - 没有问号的PHP preg_replace图像扩展?