2013-08-01 45 views
0

假设我们已经产生随机数和下面的代码绘制箱线图:我们如何检测R中boxplot的下限和上限?

set.seed(1) 
a=rchisq(1000,2) 
boxplot(a,ylim=c(-5,15)) 
abline(h=(summary(a))[2]-1.5*IQR(a),col="red") # Wrong! 
abline(h=1.5*IQR(a)+(summary(a))[5],col="red") # OK! The red line and upper extreme cover each other. 

我们如何才能得出传递较低的极端一条线吗?

+1

你可能想看看'boxplot.stats(a)',它给出了绘图函数的基础。从那里绘制值将使您绘制的任何内容对应于内置绘图。 – Thomas

回答

0
abline(h=summary(a)[1]) # ........ 

或者只是:

abline(h=min(a)) 

如果作为影子暗示,你不希望在数据极端,但 “晶须的极限”,那么:

abline(h=boxplot.stats$stats[1]) 
+1

或更一般的'abline(h = max(min(a),(summary(a))[2] -1.5 * IQR(a)),col =“red”)'和abline(h = min(max (a),1.5 * IQR(a)+(summary(a))[5]),col =“red”)' – shadow

+0

谢谢,这已经解决了问题 – user1436187

0

boxplot返回它的统计数据,因此如果在调用它时将其保存为变量,则可以稍后使用它:

b <- boxplot(a,ylim=c(-5,15)) 
abline(h=b$stats[1,],col="red") 
abline(h=b$stats[5,],col="red")