Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的Dataframe Boxplot显示不正确的胡须_Python_Pandas_Plot_Boxplot - Fatal编程技术网

Python中的Dataframe Boxplot显示不正确的胡须

Python中的Dataframe Boxplot显示不正确的胡须,python,pandas,plot,boxplot,Python,Pandas,Plot,Boxplot,在这个简单的例子中,它给出了错误的min和max whis df = pd.DataFrame(np.array([1,2,3, 4, 5]), columns=['a']) df.boxplot() 结果: 按照常规公式Q3+1.5*IQR,它应该是7和-1,但如图所示,它是5和1。看起来公式使用了0.5而不是1.5。我怎样才能改回标准 Q1 = df['a'].quantile(0.25) Q2 = df['a'].quantile(0.50) Q3

在这个简单的例子中,它给出了错误的min和max whis

df = pd.DataFrame(np.array([1,2,3, 4, 5]),
                  columns=['a'])
df.boxplot() 
结果:

按照常规公式Q3+1.5*IQR,它应该是7和-1,但如图所示,它是5和1。看起来公式使用了0.5而不是1.5。我怎样才能改回标准

Q1 = df['a'].quantile(0.25)
Q2 = df['a'].quantile(0.50)
Q3 = df['a'].quantile(0.75)

print(Q1,Q2, Q3)
IQR = Q3 - Q1
MaxO = (Q3 + 1.5 * IQR)
MinO = (Q1 - 1.5 * IQR)
print("IQR:", IQR, "Max:", MaxO, "Min:" ,MinO)
结果:

2.03.04.0

IQR:2.0最大值:%:7.0最小值:%-1.0

Q1、Q2、Q3 nad IQR正确,但不是最小值或最大值

从上四分位数上方,测量出1.5倍IQR的距离,并将触须拉长至数据集中该距离范围内的最大观察点。类似地,在下四分位数下方测量出1.5倍IQR的距离,并从该距离范围内的数据集向上绘制一条胡须到下观察点。所有其他观测点均绘制为异常值


我相信胡须的绘制值最接近Q1/3+1.5*IQR。这些值在您的案例1和5中。您是对的。我想胡须应该正好在Q3+1.5*IQR值。谢谢你的澄清。