r - R 中带有权重的直方图

标签 r ggplot2 histogram

我需要绘制密度而不是频率的加权直方图。我知道 freq = FALSEhist() 中可用,但您无法指定权重。在 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 轴上。

weighted_density_histogram

您还可以使用 plotrix 包中的 weighted.hist() 中的 freq 参数来执行此操作:

library(plotrix)
with(foo, weighted.hist(v, w, freq = FALSE))

plotrix

关于r - R 中带有权重的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30355938/

相关文章:

r - 'type = "范数时如何计算 ggplot stat_ellipse() 的面积”?

c++ - OpenCV 直方图匹配/规范

Java颜色直方图所有颜色不单独RGB

r - 对分组变量求平均 geom_密度(y=..count..)

r - 在 R 中创建具有定义相关性的正态分布变量

r - 如何从函数 Anova() 中提取残差并读取系数?

r - ggplot2 轴 : how to combine scale_x_reverse with scale_x_continous

r - 更改R中散点图中一个点或几个点的形状

R arulesSequences 查找序列支持哪些模式

r - 如何使用 ggplot2 更改细粒度的颜色图例