3

boxplot对 R 中的函数有一个严重的问题。箱线图错误地标记了图中的中线。即使平均值是 7.2376,在箱线图中它显示在 4 左右,如下图所示(使用以下代码生成)

DATA <- c(0.59, 1.00, 1.00, 1.04, 1.22, 1.40, 1.72, 1.74, 1.98, 3.44, 
          3.48, 3.50, 3.53, 3.93, 4.00, 4.33, 4.72, 9.49, 10.80, 11.40,
          12.04, 16.98, 20.43, 27.27, 29.91)

> boxplot(DATA) 
> mean(DATA) = 7.2376

在此处输入图像描述

它快把我逼疯了。它只使用这个数据集。其他数据集,箱线图标记平均值就好了。

非常感谢任何见解。

谢谢你。

4

2 回答 2

13

我的评论真的应该是一个答案......

您的困惑与其说是boxplot函数,不如说是箱形图。箱线图通常只显示五个值:最小值、第一个四分位数、中位数、第三个四分位数和最大值。(此外,大多数绘图算法会根据某些规则分离“异常值”。)

因此,箱形图中的中间线对应于中位数,而不是平均值。

于 2013-04-03T03:00:37.900 回答
7

我必须为这个愚蠢的错误赎罪。对于那些希望标记平均值的人,您可以执行以下操作:

> DATA_mean <- data.frame(Group ="A", Measure = DATA) #Make a data.frame first
> attach(DATA_mean)                                   #Attach the data
> boxplot( Measure ~ Group)                           #Draw your boxplot as above
> means <- by(Measure, Group, mean)                   #Calculate mean and assign
> points(1, means, pch = 21, cex =1.5, bg = "blue")   #Label mean on boxplot


#The default center is 1 for the boxplots, if you have more than one, it would be 1:2:3...etc

带有均值标记的箱线图

希望这可以帮助某人。那对我来说是一个令人尴尬的错误。是时候睡觉了。

谢谢大家马上纠正我。

于 2013-04-03T03:55:14.703 回答