Seaborn boxplot四分位数计算

时间:2018-05-29 12:57:13

标签: python-3.x seaborn

我正在使用seaborn版本0.7.1 for python。我正在尝试为下面的numpy数组创建一个boxplot

arr = np.array([2, 4, 5, 5, 8, 8, 9])
根据我的理解,Quartiles Q1和Q3应该是4和8,但是从生成的boxplot中,Q1大约是4.5。我错过了什么?

我正在使用follwing命令生成图表

sns.boxplot(arr)

enter image description here

1 个答案:

答案 0 :(得分:1)

这当然取决于四分位数的定义。

Wikipedia提到了计算四分位数的3种方法,

  • 方法1:取样本下部的中位数[2,4,5]。结果4。
  • 方法2:取样本下部的中位数(包括其中位数)[2,4,5,5]。结果4.5。
  • 方法3:下四分位数是第二数据值的75%加上第三数据值的25%。结果:4 * 0.75 + 5 * 0.25 = 4.25。 (它总是方法1和2之间的平均值。

您也可以使用numpy来计算四分位数

x = [2, 4, 5, 5, 8, 8, 9]
np.percentile(x, [25])

这会返回4.5