16

在默认设置的 python-pandas 箱线图中,红色条是 位数,方框表示第 25 和第 75 个四分位数,但在这种情况下,胡须到底意味着什么?找出确切定义的文档在哪里(找不到)?

示例代码:

df.boxplot()

示例结果:

在此处输入图像描述

4

4 回答 4

12

Pandas 只是包装了 matplotlib 中的 boxplot 函数。matplotlib 文档详细定义了胡须:

whis:浮点数、序列或字符串(默认 = 1.5)

作为浮点数,确定胡须的范围超出第一和第三四分位数。换句话说,如果 IQR 是四分位距 (Q3-Q1),则上须线将延伸到小于 Q3 + whis*IQR 的最后一个数据。类似地,下须线将延伸到大于 Q1 - whis*IQR 的第一个数据。除了胡须,数据被认为是异常值,并被绘制为单个点。

Matplotlib(和 Pandas)还为您提供了很多选项来更改胡须的默认定义:

将此设置为不合理的高值以强制胡须显示最小值和最大值。或者,将其设置为百分位数的升序(例如,[5, 95])以将须线设置在数据的特定百分位数。最后,whis 可以是字符串“范围”,以强制胡须达到数据的最小值和最大值。

下面的图表从stats.stackexchange answer说明了这一点。请注意,如果您未whis在 Pandas 中提供关键字,则 k=1.5。

在此处输入图像描述

于 2018-04-11T17:58:41.563 回答
8

你在你的问题中提到红线是平均值 - 它实际上是中位数。

从上面常涉提到的matplotlib链接:

该框从数据的下四分位数延伸到上四分位数,中间有一条线。晶须从盒子延伸以显示数据的范围。飞行点是那些超过胡须末端的点。

我没有进行实验,但有一个“平均线”选项可能会将线置于平均线。

于 2014-10-16T13:15:50.807 回答
8

来自Amelio Vazquez-Reina在 matplotlib 箱形图中的回答:标记和异常值:

在此处输入图像描述

异常值(+箱线图中的标记)只是下方宽边之外[(Q1-1.5 IQR), (Q3+1.5 IQR)]的点。

仅供参考:对箱须图中栅栏的位置感到困惑

于 2017-08-06T16:08:24.373 回答
6

这些在matplotlib文档中指定。胡须是四分位数范围的一些倍数(默认为 1.5)。

于 2012-08-23T01:34:04.427 回答