首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >abline()不使用weighted.hist()

abline()不使用weighted.hist()
EN

Stack Overflow用户
提问于 2021-07-12 02:44:32
回答 1查看 120关注 0票数 1

因此,我使用plotrix库用一些权重来绘制直方图,直方图如预期的那样显示,但当我尝试将平均值作为一条垂直线时,它根本不会出现。

下面是我的代码片段:

代码语言:javascript
复制
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新手,但是我做了我的研究,却找不到任何有用的信息。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 03:32:45

您应该提供数据的示例。你对加权平均数的计算只有当你的权重之和为1时才是正确的。如果它们没有,你应该使用weighted.mean(vals, weights)sum(vals * weights/sum(weights))。下面的示例与weighted.hist手册页(help(weighted.hist))上的示例略有不同:

代码语言:javascript
复制
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才能得到正确的位置:

代码语言:javascript
复制
abline(v=mean-1, col="red")

使用您的数据,我们需要识别第一个边界,以调整平均值,使其在正确的位置绘制“

代码语言:javascript
复制
wh$breaks[1]
# [1] 52.5
abline(v=mean - wh$breaks[1], col="red")

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68341396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档