我需要绘制密度而不是频率的加权直方图。我知道 freq = FALSE
在 hist()
中可用,但您无法指定权重。在 ggplot2 中我可以这样做:
library(ggplot2)
w <- seq(1,1000)
w <-w/sum(w)
v <- sort(runif(1000))
foo <- data.frame(v, w)
ggplot(foo, aes(v, weight = w)) + geom_histogram()
但是 freq = FALSE
的等价物在哪里?
最佳答案
默认情况下,geom_histogram()
将使用 y 轴上的频率而不是密度。但是,您可以通过将 y
审美设置为 ..密度..
来更改此设置,如下所示:
ggplot(foo, aes(x = v, y = ..density.., weight = w)) + geom_histogram()
这将生成一个 v
的加权直方图,密度在 y 轴上。
您还可以使用 plotrix
包中的 weighted.hist()
中的 freq
参数来执行此操作:
library(plotrix)
with(foo, weighted.hist(v, w, freq = FALSE))
关于r - R 中带有权重的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30355938/