通过示例了解Seaborn Boxplot

时间:2019-02-18 17:53:42

标签: python seaborn boxplot

我正在尝试通过一些示例数据集来了解seaborn boxplot图。因此,使用“提示”数据集。

tips = sns.load_dataset('tips')

首先使用18个值作为

tips = tips[0:18]

所需数据集为:

1    8.77
2    10.27
3    10.33
4    10.34
5    14.78
6    14.83
7    15.04
8    15.42
9    16.29
10   16.99
11   18.43
12   21.01
13   21.58
14   23.68
15   24.59
16   25.29
17   26.88
18   35.26

所需图形为:

enter image description here

为了更好地理解,我自己计算了Q1,Q2和Q3。

Q2(Median): 16.64

Q1 Data:
9 values
[8.77, 10.27, 10.33, 10.34, 14.78, 14.83, 15.04, 15.42, 16.29]
Q1 Median: 14.78

Q3 Data:
9 values
[16.99, 18.43, 21.01, 21.58, 23.68, 24.59, 25.29, 26.88, 35.26]
Q3 Median: 23.68

Min: 8.77
Max: 35.26
Interquartile Range(IQR): 8.9

Five Number Summary:
8.77, 14.78, 16.64, 23.68, 35.26

到目前为止,由于五个数字摘要与图形匹配,因此看起来非常令人信服。现在,我使用以下方法在该数据集中添加一个元素:

tips = tips[0:19]

新值为16.97现在,很多事情都将发生变化。 更新后的数据集为:

1    8.77
2    10.27
3    10.33
4    10.34
5    14.78
6    14.83
7    15.04
8    15.42
9    16.29
10   16.97
11   16.99
12   18.43
13   21.01
14   21.58
15   23.68
16   24.59
17   25.29
18   26.88
19   35.26

现在的图形为:

enter image description here

要在手动计算时理解该图,那将不令人信服。

Q2(Median): 16.97

Q1 Data:
9 values
[8.77, 10.27, 10.33, 10.34, 14.78, 14.83, 15.04, 15.42, 16.29]
Q1 Median: 14.78

Q3 Data:
10 values (Greater than or EQUAL TO MEDIAN add here)
[16.97, 16.99, 18.43, 21.01, 21.58, 23.68, 24.59, 25.29, 26.88, 35.26]
Q3 Median: 22.63

Min: 8.77
Max: 35.26
Interquartile Range(IQR): 7.85

Five Number Summary:
8.77, 14.78, 16.97, 22.63, 35.26

正如许多文章中所讨论的,晶须应为Q3+1.5*IQRQ1-1.5*IQR,但在这种情况下不会发生这种情况:

1.5*7.85 = 11.775
For whisker with Q3:
22.63 + 11.775 = 34.405

因此,在图晶须的右侧,最大值应为34.405,但结尾应为27 approx。我需要了解这一点,它是如何计算该值的?还是我的手动计算有任何错误?谢谢

2 个答案:

答案 0 :(得分:2)

文档字符串有点误导。晶须不会扩展到计算值,而仅足以包含它们之间的所有点(不是异常值的点)。在这种情况下,该值为26.88,因为35.26是一个异常值(超出Q3 + 1.5 * IQR)。

答案 1 :(得分:0)

在您的第二个图中,有猫头鹰会影响计算。

docs中,您可以查看参数whis

  

whis:浮动,可选

     

IQR越过低四分位数和高四分位数的比例,以扩展情节须。

     

超出此范围的点将被识别为离群值。

尝试使用whis2.05.010.0,...)的大值,以使您的数据点始终落在四分位数之内。