R语言 ggplot2中等面积箱的直方图[重复]

a11xaf1n  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(193)

此问题在此处已有答案

How to make variable width histogram in R with labels aligned to bin edges?(1个答案)
11小时前关门了。
我想在ggplot2中创建一个直方图,其中每个bin都有相同的点数,并且所有bin都有相同的面积。

set.seed(123)
x <- rnorm(100)
hist(x, breaks = quantile(x, 0:10 / 10))

当我在ggplot中尝试使用scale_x_continuous并设置像hist这样的断点时,它返回以下内容:

library(ggplot2)
ggplot(data = data.frame(x), aes(x = x)) +
  geom_histogram(aes(y = after_stat(density)), bins = 10) +
  scale_x_continuous(breaks=quantile(x, 0:10 / 10))

创建于2023年1月5日,使用reprex v2.0.2
为什么这会返回一个不同的输出?所以我想知道是否有人知道如何像上面的基本选项一样使用ggplot创建一个等面积柱的直方图?

h79rfbju

h79rfbju1#

如果你想得到和基础历史记录相同的输出,你可以从对象中提取值,然后自己画出来。

set.seed(123)
x <- rnorm(100)
hh <- hist(x, breaks = quantile(x, 0:10 / 10))

data.frame(
  left=head(hh$breaks,-1), right=tail(hh$breaks, -1),
  height=hh$density
) |> 
  ggplot() + 
  aes(xmin=left, xmax=right, ymin=0, ymax=height) + 
  geom_rect(fill="lightgray", color="black")

相关问题