python - 如何获取 matplotlib 箱线图的箱线图数据

标签 python pandas matplotlib

我需要获取生成的统计数据以在 Pandas 中绘制箱形图(使用数据框创建箱形图)。即四分位数 1、四分位数 2、四分位数 3、下晶须值、上晶须值和异常值。 我尝试了以下查询来绘制箱线图。

import pandas as pd
df = pd.DataFrame(np.random.rand(100, 5), columns=['A', 'B', 'C', 'D', 'E'])
pd.DataFrame.boxplot(df,return_type = 'both')

有没有办法代替手动计算值?

最佳答案

一种选择是使用图中的 y 数据 - 可能对离群值(传单)最有用

_, bp = pd.DataFrame.boxplot(df, return_type='both')

outliers = [flier.get_ydata() for flier in bp["fliers"]]
boxes = [box.get_ydata() for box in bp["boxes"]]
medians = [median.get_ydata() for median in bp["medians"]]
whiskers = [whiskers.get_ydata() for whiskers in bp["whiskers"]]

但使用其中任何一种获取其他值(包括 IQR)可能更直接

quantiles = df.quantile([0.01, 0.25, 0.5, 0.75, 0.99])

或者,按照 WoodChopper 的建议

stats = df.describe()

关于python - 如何获取 matplotlib 箱线图的箱线图数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518472/

相关文章:

python - pyparsing:跳到下一个标记,忽略之间的所有内容

python - 如何替换数据框中的索引

python - 转换数据框的 Pandas dtype

Python Pandas : Doing cumsum for each day for months

python / Pandas : Unexpected indices when doing a groupby-apply

python - AxesSubplot 对象的 xticks 等效函数

python - Seaborn fiddle 图,用于按分类列分割单列

python - 捕获由 ftplib 中的连接错误引起的异常

python - 使用 matplotlib ArtistAnimation 将文本添加到动画图像

python - Pandas 将列类型从列表转换为 np.array