我需要绘制密度而不是频率的加权直方图。我知道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
但在哪里等同于group = list(group)
?
答案 0 :(得分:4)
默认情况下,geom_histogram()
将在y轴上使用频率而不是密度。但是,您可以通过将y
美学设置为..density..
来改变这种情况:
ggplot(foo, aes(x = v, y = ..density.., weight = w)) + geom_histogram()
这将产生v
的加权直方图,其y轴为密度。
您也可以使用freq
包中weighted.hist()
中的plotrix
参数执行此操作:
library(plotrix)
with(foo, weighted.hist(v, w, freq = FALSE))