我需要绘制密度的加权直方图,而不是频率直方图。我知道在hist()
中可以使用freq = FALSE
,但您不能指定权重。在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
的等价物在哪里呢
发布于 2015-05-21 01:21:32
默认情况下,geom_histogram()
将在y轴上使用频率而不是密度。但是,您可以通过将y
美学设置为..density..
来更改此设置,如下所示:
ggplot(foo, aes(x = v, y = ..density.., weight = w)) + geom_histogram()
这将生成y轴上密度为v
的加权直方图。
您也可以使用plotrix
包中weighted.hist()
中的freq
参数来执行此操作:
library(plotrix)
with(foo, weighted.hist(v, w, freq = FALSE))
https://stackoverflow.com/questions/30355938
复制相似问题