geom_boxplot输入了错误的晶须

时间:2019-12-27 06:50:28

标签: r ggplot2 boxplot

我正在使用ggplot2中的geom_boxplot制作箱形图。但是,我发现晶须的长度不正确,我也不知道为什么。这是我的数据:

value = c(1.3739117,0.8709891,3.4510461,0.8470309,1.4838725,0.6942611,1.3095816,3.0444649,19.2785424,1.0866242,0.9376845,2.2343836, 20.7975509, 20.3102489, 18.0046679,1.4197519)
data = data.frame(value)
ggplot(data, aes(y = value)) +
   stat_boxplot(geom = "errorbar", width = 0.3) +
   geom_boxplot(width = 0.5)

我看到这样的情节:

enter image description here

第3个分位数与上晶须重叠。我手动进行了计算,结果如下:

summary(data)
Min.   : 0.6943  
1st Qu.: 1.0494  
Median : 1.4518  
Mean   : 6.0715  
3rd Qu.: 7.0895  
Max.   :20.7976

基于geom_boxplot的解释:上晶须从铰链延伸至最大值,距离铰链的距离不得超过1.5 * IQR(其中IQR是四分位间距,即第一和第三四分位数之间的距离)。下晶须从铰链延伸到最小值,最大为铰链的1.5 * IQR。

在我的案例中,IQR为:7.0895-1.0494 = 6.0401

下晶须应该为:0.6943-1.5 * 6.0401 = -8.36585

上须须为:7.0895 + 1.5 * 6.0401 = 16.14965

我知道负下晶须是没有意义的,因此在此将其替换为最小值。但是为什么不显示上须呢?我很困惑,无法在线找到解决此问题的示例。我对ggplot设置有误解吗?非常感谢您的帮助和建议!

1 个答案:

答案 0 :(得分:4)

引用部分:

  

上部晶须从铰链延伸至最大值否   距离铰链大于1.5 * IQR (其中IQR是四分位数   范围或第一和第三四分位数之间的距离。

根据“值”,它们表示原始数据点中的。如果绘制数据,则顶部铰链在7.09和16.15(+ 1.5 * IQR)之间没有值。如果这些四分位数是由其中一个值在该范围内的数据产生的,则上须晶会到达该位置。

ggplot(data, aes(y = value)) +
  geom_jitter(aes(x = 0.5), width = 0.05) +
  stat_boxplot(geom = "errorbar", width = 0.3, 
               color = "red", size = 1.5) +
  geom_boxplot(width = 0.5, alpha = 0.5) +
  geom_hline(yintercept = c(7.09, 16.15), lty = "dashed")

enter image description here