python - 从数据框创建多系列箱线图
问题描述
我有一个带有一些校准数据的数据框,每一行都是一个校准记录,其中包含单位的修订和不同规模容量下的百分比误差。我想创建此数据的箱线图,其中我在 x 轴上有容量列,并按修订进一步细分。与 Seaborn 的箱线图文档中提供的示例非常相似(其中吸烟者 = 修订,天 = 容量)。我试图复制该示例,但如果不明确定义 x 和 y,似乎无法使 hue 参数起作用。考虑到我有多个 x 系列,我不确定该怎么做。我对 pandas 很陌生,我认为我需要以更长的形式重组数据,以便只有一个 x 轴。我将如何去做以实现我的目标?如果需要,我可以提供更多信息。
我设置了一个示例数据集来展示其当前结构以供参考:
解决方案
如果其他人偶然发现这一点,我自己想出来。需要先将数据框融合为 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)
推荐阅读
- javascript - 在全日历事件工具提示中不可见
- typescript - CircleCI 无法评估 TypeScript
- java - 使用 Facebook 登录的应用程序在开发中不起作用!它只是加载和关闭-Android Studio
- javascript - 通过 POST 请求发送文件流时出错
- r - 如何使用变量名中的多个正则表达式对数据框进行子集化?
- android - 如何修复没有这样的 NoSuchMethodError 颤振 tabView?
- python - 并行运行 luigi 任务
- excel - BOF 或 EOF 为 True ,或当前记录已被删除
- python - 为 geopandas 图生成图例
- php - 将 html mysql 表导入到 php 中。大数字在excel文件中转换为指数