在具有默认设置的python-pandas箱图中,红色条是 mean 中位数,框表示第25和第75个四分位数,但是胡须到底是什么这个意思是什么意思?文档在哪里找出确切的定义(找不到它)?
示例代码:
df.boxplot()
示例结果:
答案 0 :(得分:7)
你在问题中提到红线是平均值 - 它实际上是中位数。
来自Chang She上面提到的matplotlib链接:
该框从数据的下四分位数值向上四分位数值延伸, 在中位线有一条线。胡须从盒子延伸到显示 数据范围。飞行员积分是那些过去的结尾 晶须。
我没有进行实验,但有一个'meanline'选项可能会使该线处于平均值。
答案 1 :(得分:6)
Pandas只是从matplotlib中包装了boxplot函数。 matplotlib docs详细定义了胡须:
whis:float,sequence或string(默认值= 1.5)
作为浮子,确定胡须的触及范围 第一和第三四分位数。换句话说,IQR就是 四分位数范围(Q3-Q1),上部晶须将延伸至最后 数据小于Q3 + whis * IQR)。同样,较低的晶须会 延伸到大于Q1的第一个数据 - whis * IQR。超过 晶须,数据被视为异常值,并作为个体绘制 分。
Matplotlib(和Pandas)还为您提供了许多选项来更改胡须的默认定义:
将此值设置为不合理的高值以强制显示胡须 最小值和最大值。或者,将其设置为升序 百分位数序列(例如,[5,95])将胡须设置为特定的 数据的百分位数。最后,whis可以是字符串'range' 强迫胡须到数据的最小值和最大值。
下图是从stats.stackexchange answer说明这一点的图片。请注意,如果您未在Pandas中提供whis
关键字,则k = 1.5。
答案 2 :(得分:5)
这些在matplotlib文档中指定。胡须是四分位数范围内的一些倍数(默认为1.5)。
答案 3 :(得分:3)
来自Amelio Vazquez-Reina的Boxplots in matplotlib: Markers and outliers答案:
异常值(框图中的
+
标记)只是下面宽[(Q1-1.5 IQR), (Q3+1.5 IQR)]
边距的 点。