如何在一个图像中将多个箱图​​中的值放在R上的Boxplot中

时间:2014-11-01 19:24:31

标签: r compare boxplot

我想在R中绘制Delta~Project.Types。我有10个项目类型。我知道怎么做箱形图: 箱线图(三角洲〜Project.Types)。但是,如何在每个箱线图上放置五分(最小,最大,第一,第二和第三分位数)?我怎么能为图像的每个箱形图显示其五个数字?在显示值时,比较箱形图会更容易

谢谢!

2 个答案:

答案 0 :(得分:4)

您还可以使用fivenum

获取所需的统计数据
five <- by(InsectSprays$count, InsectSprays$spray, fivenum)
do.call(cbind, five)
#         A    B   C    D   E  F
# [1,]  7.0  7.0 0.0  2.0 1.0  9
# [2,] 11.0 12.0 1.0  3.5 2.5 12
# [3,] 14.0 16.5 1.5  5.0 3.0 15
# [4,] 18.5 18.0 3.0  5.0 5.0 23
# [5,] 23.0 21.0 7.0 12.0 6.0 26

或者,这些统计信息是boxplot的返回值之一(请注意,您需要使用range = 0来获取最小值和最大值,因为有一些值在外的值):

bp <- boxplot(count ~ spray, data = InsectSprays, col = "lightgray", range = 0)
bp$stats
#      [,1] [,2] [,3] [,4] [,5] [,6]
# [1,]  7.0  7.0  0.0  2.0  1.0    9
# [2,] 11.0 12.0  1.0  3.5  2.5   12
# [3,] 14.0 16.5  1.5  5.0  3.0   15
# [4,] 18.5 18.0  3.0  5.0  5.0   23
# [5,] 23.0 21.0  7.0 12.0  6.0   26

然后只需添加到每个框中:

text(x = col(bp$stats) - .5, y = bp$stats, labels = bp$stats)

enter image description here

答案 1 :(得分:1)

您可以添加&#34;图例&#34;到包含你想要的基本R图:

legend("topright", bty = "n", legend = summary(Delta))

我假设它是&#34; Delta&#34;你正在运行summary(),所以根据需要进行更改。您可以使用paste()修改图例中显示的内容,即

legend("topright", bty = "n", legend = c(paste("min =", summary(Delta)[1]),
                                     paste("max =", summary(Delta)[2])))