首页 > 解决方案 > 从数据框创建多系列箱线图

问题描述

我有一个带有一些校准数据的数据框,每一行都是一个校准记录,其中包含单位的修订和不同规模容量下的百分比误差。我想创建此数据的箱线图,其中我在 x 轴上有容量列,并按修订进一步细分。与 Seaborn 的箱线图文档中提供的示例非常相似(其中吸烟者 = 修订,天 = 容量)。我试图复制该示例,但如果不明确定义 x 和 y,似乎无法使 hue 参数起作用。考虑到我有多个 x 系列,我不确定该怎么做。我对 pandas 很陌生,我认为我需要以更长的形式重组数据,以便只有一个 x 轴。我将如何去做以实现我的目标?如果需要,我可以提供更多信息。

这是我试图复制的 seaborn 示例

我设置了一个示例数据集来展示其当前结构以供参考:

样本数据

标签: pythonpandasmatplotlibseabornboxplot

解决方案


如果其他人偶然发现这一点,我自己想出来。需要先将数据框融合为 3 列:

df = pd.melt(df, id_vars=['Revision'], value_vars=['20%','40%','60%','80%','100%'], var_name='Capacity', value_name='% Error')
ax = sns.boxplot(x='Capacity', y='% Error', hue='Revision', data=df, palette='Set3', showfliers=False)

推荐阅读