r - abline() 不适用于 weighted.hist()
问题描述
因此,我使用该plotrix
库使用一些权重绘制直方图,直方图按预期显示,但是当我尝试将平均值绘制为垂直线时,它根本不会显示
这是我的代码片段:
library("plotrix")
library("zoom")
vals = seq.int(from = 52.5 , to = 97.5 , by = 5)
weights <- c(18.01,18.26,16.42,14.07,11.67,9.19,6.46,3.85,1.71,0.34)/100
mean <- sum(vals*weights)
wh <- weighted.hist(x = vals , w = weights , freq = FALSE)
abline(v = mean)
abline()
似乎只适用于正常hist()
功能
如果这个问题听起来很愚蠢,我很抱歉,我是 R 新手,但是我做了研究,找不到任何有用的信息。
提前致谢。
解决方案
您应该提供数据样本。只有当您的权重总和为 1 时,您对加权平均值的计算才是正确的。如果不是,您应该使用weighted.mean(vals, weights)
or sum(vals * weights/sum(weights))
。以下示例根据weighted.hist
手册页 ( help(weighted.hist)
) 中的示例稍作修改:
vals <- sample(1:10, 300, TRUE)
weights <- (101:400)/100
weighted.hist(vals, weights, breaks=1:10, main="Test weighted histogram")
(mean <- weighted.mean(vals, weights))
# [1] 5.246374
直方图从 1 开始,但在 x 轴坐标上为 0,因此我们需要减 1 以使直线位于正确的位置:
abline(v=mean-1, col="red")
使用您的数据,我们需要确定第一个边界以调整平均值,使其绘制在正确的位置”
wh$breaks[1]
# [1] 52.5
abline(v=mean - wh$breaks[1], col="red")
推荐阅读
- stored-procedures - 进程退出错误:Oracle 存储过程
- cassandra - Apache NiFi/Cassandra - PutCassandraRecord 无法转换为 Record 对象
- amazon-web-services - EC2 实例存储:定价和持久性
- javascript - TradingView JS API websocket 请求响应?
- python - 如何找到 2 个变量之间但跨越不同时间线的相关性(“滞后相关性”)
- java - 要求给定类型的所有字段都由某个字段注释进行注释
- python - 如何用每个条的总和(Matplotlib)注释堆积条形图?
- php - 如何将复选框选择传递给 php mailer 表单?
- algorithm - k = k + 1 是什么意思?有什么建议可以用解决方案对实际问题进行分类吗?
- google-bigquery - 如何使用 DDL 设置授权视图?