【问题标题】:How to create a boxplot from pre-aggregated/grouped data in Python?如何从 Python 中的预聚合/分组数据创建箱线图?
【发布时间】:2020-06-04 14:42:15
【问题描述】:
使用 Matplotlib/Pandas/Seaborn,如何从聚合数据而不是原始数据构建箱线图?
背景:我知道数百万人的年龄,我想为此制作一个箱线图。因为我有数百万行,所以我首先使用 PySpark 聚合我的数据集,然后再继续在 Pandas 中进行绘图。结果是我有一个数据集,其中包含一定年龄的人数(例如 10 万人 18 岁)。
我似乎在 Seaborn 或 maptlotlib 包中找不到选项。我错过了什么吗?
【问题讨论】:
标签:
python
matplotlib
pyspark
aggregate
boxplot
【解决方案1】:
我找到了以下解决方案。
-
使用 PySpark 聚合数据并使用键名将此数据存储在字典中。字典result 应该是这样的:
{'mean': 45.30698829299204,
'med': 47.0,
'q1': 27.0,
'q3': 62.0,
'iqr': 35.0,
'whishi': 114,
'whislo': 0,
'fliers': array([[118], [118])
}
-
绘制可以使用matplotlib boxplot抽屉函数bxp,例如:
fig, ax = plt.subplots(figsize=(6, 12))
ax.bxp([result], showmeans = True, meanline = True)
详情请见here。
如果您有更好的解决方案,请随时发表评论或回答。