如何将平均值添加到R中的直方图?

时间:2011-07-02 15:48:55

标签: r statistics histogram

我想绘制一个平均值(平均值)的直方图(例如我们可以用蓝色粗线标记)。

我尝试使用plot命令执行此操作,但即使我设置了参数add=TRUE 它不起作用。

4 个答案:

答案 0 :(得分:22)

您可以使用abline()为地图添加线条:

x <- rnorm(100)
mx <- mean(x)
hist(x)
abline(v = mx, col = "blue", lwd = 2)

还要查看?par的图形参数(例如collwd)。


通常,您还可以使用lines()

绘制线条
x <- rnorm(100, mean = 10)
mx <- mean(x)
hist(x)
lines(c(mx,mx), c(0,15), col = "red", lwd = 2)
lines(c(10, 11.5), c(0, 10), col = "steelblue", lwd = 3, lty = 22)
text(mx, 18 , round(mx, 2))
text(mx, 12 , "big", cex = 5)

其中text()用于添加文字。参数cex描述了“字符扩展因子”。

另外,请查看Quick-R,了解使用R。

进行基本绘图的概述

答案 1 :(得分:13)

hist(data)
abline(v=mean(data),col="blue")

答案 2 :(得分:6)

如果你有更多列的数据框使用ggplot2包是我的首选选项:

ggplot (data, aes (x = colname)) + geom_vline(xintercept=mean(data$colname), color="red")

Colname是data.frame中要为其绘制直方图和平均值的列。

答案 3 :(得分:1)

我遇到了平均线没有出现的问题,我没有得到任何错误来帮助我找出原因。我意识到没有发生任何事情,因为我有一些缺失的数据,所以平均值计算为NA。将na.rm = T添加到mean()arg得到一个实数,并出现平均线。这是一个小小的疏忽和一个简单的解决方案,几乎不值得写,但无论如何我都会发布它以防万一有些悲伤。

hist(data$Defect.rate, 
 xlim = c(0, 1),
 col = "light blue")

abline(v = mean(data$Defect.rate, na.rm = T),
            col = "red",
            lwd = 2)