在直方图中绘制平均值是否合适?

机器算法验证 自习 数据可视化 意思是 直方图
2022-01-20 16:11:34

在直方图中添加一条垂直线以可视化平均值是否“可以”?

对我来说似乎没问题,但我从未在教科书之类的书中看到过这一点,所以我想知道是否有某种约定不这样做?

该图表用于学期论文,我只是想确保我不会意外打破一些非常重要的潜规则。:)

4个回答

当然,为什么不?

均值直方图

这是一个示例(我通过简单的谷歌搜索找到的几十个示例之一):

具有平均值和中位数的 hist

(图片来源是测量可用性博客,在这里。)

我见过均值、均值加或减标准差、各种分位数(如中位数、四分位数、第 10 和第 90 百分位数)都以各种方式显示。

您可以在图的底部标记信息,而不是在图上画一条线 - 如下所示:

带边际箱线图的直方图

有一个示例(可以找到的众多示例之一),箱线图位于顶部而不是底部,这里

有时人们会在数据中标记:

带抖动的直方图地毯图
(我稍微抖动了数据位置,因为这些值被四舍五入为整数,你看不到相对密度。)

有一个这样的例子,在Stata中完成,在这个页面上(见第三个here

带有一些额外信息的直方图会更好 -它们本身可能会产生误导

你只需要注意解释你的情节是由什么组成的!(对于初学者,你会想要一个比我在这里使用的更好的标题和 x 轴标签。再加上一个图形标题中的解释,解释你在上面标记的内容。)

--

最后一个情节:

带条形图的直方图

--

我的地块是在 R 中生成的。

编辑:

正如@gung 推测的那样,abline(v=mean...用于绘制整个绘图的平均线并rug用于绘制数据值(尽管我实际使用rug(jitter(...了因为数据被四舍五入为整数)。

这是一种在直方图和轴之间绘制箱线图的方法:

hist(Davis2[,2],n=30)
boxplot(Davis2[,2],
  add=TRUE,horizontal=TRUE,at=-0.75,border="darkred",boxwex=1.5,outline=FALSE)

我不会列出所有内容的用途,但您可以检查帮助 ( ?boxplot) 中的参数以找出它们的用途,并自己玩弄它们。

但是,这不是一个通用的解决方案——我不保证它会一直像这里一样正常工作(注意我已经更改了atandboxwex选项*)。如果你不编写一个智能函数来处理所有事情,那么有必要注意所有事情的作用,以确保它在做你想做的事情。

下面是如何创建我使用的数据(我试图展示 Theil 回归如何真正能够处理几个有影响的异常值)。当我第一次回答这个问题时,它恰好是我正在玩的数据。

 library("car")
 add <- data.frame(sex=c("F","F"),
       weight=c(150,130),height=c(NA,NA),repwt=c(55,50),repht=c(NA,NA))
 Davis2 <- rbind(Davis,add)

* - 的适当值at约为boxwex;的值的 -0.5 倍。如果您编写一个函数来执行此操作,那将是一个很好的默认值;boxwex需要以与箱线图的 y 比例(高度)相关的方式进行缩放;我建议 0.04 到 0.05 倍 y 上限通常可能没问题。

边缘条形图的代码:

 hist(Davis2[,2],n=30)
 stripchart(jitter(Davis2[,2],amount=.5),
       method="jitter",jitter=.5,pch=16,cex=.05,add=TRUE,at=-.75,col='purple3')

当然可以。只要确保清楚地标记/指示线条的含义,并避免使情节过于“忙碌”。

没有什么比一个图表更糟糕的了,它传达了太多难以理解的信息。该表是一种经常被忽视的以清晰、简洁的方式显示汇总统计信息的方式。

以前的答案提出了很好的观点,但这里有一个要补充的基础。

平均值是分布的重心,也是直方图的枢轴点。这是分配平衡的地方。因此,存在互惠关系:不仅均值可以帮助您考虑直方图,直方图也可以帮助您考虑均值。当分布偏斜并且分布的平均值不一定在中间时,这甚至可能更有帮助。

我认为它没有问题,请参阅thisthisthis作为示例。