理论上,vioplot包的小提琴图是一个箱线图+密度函数。
在“boxplot part”中,
黑匣子对应IQR(确实见下文),
中线应对应相同的范围(相邻值,默认值为1.5 IQR),但不是(见下文)。任何人都可以解释他们为什么不同?
require("vioplot")
a = rnorm(100)
range (a)
a = c(a,2,8,2.9,3,4, -3, -5) # add some outliers
par ( mfrow = c(1,2))
boxplot(a, range=1.5)
vioplot(a, range=1.5 )
上面提到:
答案 0 :(得分:2)
让我用一个简单的例子说明这一点:
b <- c(1:10, 20)
par(mfrow = c(1,2))
boxplot(b, range=1.5)
vioplot(b, range=1.5 )
R&#39>箱图的定义是(从ggplot's help借用主题):
上部晶须从铰链延伸到内部的最高值 1.5 *铰链的IQR,其中IQR是四分位数间距或距离 在第一和第三四分位之间。
浏览vioplot的source code,我们看到upper[i] <- min(q3[i] + range*iqd, data.max)
。
因此,让我们尝试重现上方的晶须值:
# vioplot draws
quantile(b, 0.75) + 1.5 * IQR(b)
# 16
# boxplot draws
max(b[b <= quantile(b, 0.75) + 1.5 * IQR(b)])
# 10