【发布时间】:2021-10-05 05:45:15
【问题描述】:
我通过 seaborn 制作了一个箱线图,我想得到一些统计值,例如最小值、第一四分位数、中位数、第三四分位数、最大值以及异常值。
是否有任何函数或属性可以通过seaborn boxplot直接收集这些值。
或者我应该通过其他包或手动计算这些。
【问题讨论】:
-
你最好计算它们,因为 seaborn 没有检索值的接口。唯一的其他选择是从图中查询矩形和线条的每个坐标。
我通过 seaborn 制作了一个箱线图,我想得到一些统计值,例如最小值、第一四分位数、中位数、第三四分位数、最大值以及异常值。
是否有任何函数或属性可以通过seaborn boxplot直接收集这些值。
或者我应该通过其他包或手动计算这些。
【问题讨论】:
使用pandas的@987654323@函数,最终加上groupby()。例如:
tips = sns.load_dataset("tips")
x_val = "day"
y_val = "total_bill"
hue_val = "time"
ax = sns.boxplot(x=x_val, y=y_val, hue=hue_val, data=tips)
tips.groupby([x_val,hue_val])[y_val].describe()
输出:
count mean std min 25% 50% 75% \
day time
Thur Lunch 61.0 17.664754 7.950334 7.51 12.4300 16.000 20.2700
Dinner 1.0 18.780000 NaN 18.78 18.7800 18.780 18.7800
Fri Lunch 7.0 12.845714 2.842228 8.58 11.1250 13.420 14.7000
Dinner 12.0 19.663333 9.471753 5.75 12.3525 18.665 23.8825
Sat Dinner 87.0 20.441379 9.480419 3.07 13.9050 18.240 24.7400
Sun Dinner 76.0 21.410000 8.832122 7.25 14.9875 19.630 25.5975
max
day time
Thur Lunch 43.11
Dinner 18.78
Fri Lunch 16.27
Dinner 40.17
Sat Dinner 50.81
Sun Dinner 48.17
【讨论】: