如何根据 Python 中的 pre-aggregated/grouped 数据创建箱线图?
How to create a boxplot from pre-aggregated/grouped data in Python?
使用 Matplotlib/Pandas/Seaborn,如何从聚合数据而不是原始数据构建箱线图?
上下文:我知道他们年龄的数百万人,我想制作一个箱线图。因为我有数百万行,所以我首先使用 PySpark 聚合我的数据集,然后再继续 Pandas 中的绘图。结果是我有一个数据集,其中包含特定年龄的人数(例如 10 万 18 岁的人)。
我似乎无法在 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。
如果您有更好的解决方案,请随时发表评论或回答。
使用 Matplotlib/Pandas/Seaborn,如何从聚合数据而不是原始数据构建箱线图?
上下文:我知道他们年龄的数百万人,我想制作一个箱线图。因为我有数百万行,所以我首先使用 PySpark 聚合我的数据集,然后再继续 Pandas 中的绘图。结果是我有一个数据集,其中包含特定年龄的人数(例如 10 万 18 岁的人)。
我似乎无法在 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。
如果您有更好的解决方案,请随时发表评论或回答。