首页 > 解决方案 > 如何在 Python 中绘制带有异常值和四分位数的箱线图

问题描述

我的箱线图显示正确,但我无法理解异常值和四分位数。我的箱线图如下所示 在此处输入图像描述

这是我的代码

df = pd.read_csv(r'posts_dataset.csv')
df.boxplot(by='city', column=['price'], color='red')
plt.show()

如何将其绘制为具有异常值和矩形形状的其他正式箱线图?

标签: pythondata-miningboxplot

解决方案


很可能你price有一些巨大的异常值或者它有一个沉重的尾巴,例如:

df = pd.DataFrame({'price':np.random.negative_binomial(0.1, 0.0001,5000),
                   'city':np.random.choice(['A','B','C'],5000)})
df.hist(column='price')

在此处输入图像描述

如果你做一个箱线图,它将被压扁:

df.boxplot(by='city', column=['price'], color='red')

在此处输入图像描述

一种选择是采用 log10 :

df['log_price'] = np.log10(df['price']+1)
df.boxplot(by='city', column='log_price', color='red')

在此处输入图像描述


推荐阅读