使用Matplotlib / Pandas / Seaborn,如何从汇总数据而非原始数据构建箱线图?
上下文:数以百万计的人我知道他们的年龄,我想对此做一个箱线图。因为我有数百万行,所以我先使用PySpark汇总数据集,然后再进行Pandas中的绘图。结果是我拥有一个具有一定年龄的人数(例如18岁的10万人)的数据集。
我似乎在Seaborn或maptlotlib软件包中找不到选项。我想念什么吗?
我找到了以下解决方案。
使用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。
如果有的话,随时发表评论或回答更好的解决方案。