You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单图中绘制多箱线图,支持按分类变量分组

多箱线图与分组箱线图实现方案

一、普通多箱线图(无分类变量)

直接利用seaborn.boxplot传入原始DataFrame,即可生成每一列对应的箱线图:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 绘制普通多箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(data=df)
plt.title('普通多箱线图')
plt.ylabel('数值')
plt.xticks(rotation=45)  # 旋转x轴标签避免重叠
plt.tight_layout()  # 自动调整布局
plt.show()

二、分组箱线图(有分类变量)

需要先将数据合并并转换为长格式,再结合分类变量实现分组可视化:

步骤1:合并数据并转换格式

# 合并数值DataFrame和分类DataFrame
merged_df = pd.concat([df, ad], axis=1)
# 转换为长格式,方便seaborn分组绘制
long_df = merged_df.melt(id_vars='Category', var_name='帐篷名称', value_name='数值')

步骤2:绘制分组箱线图

plt.figure(figsize=(12, 6))
sns.boxplot(data=long_df, x='帐篷名称', y='数值', hue='Category')
plt.title('按时段分组的箱线图')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

说明

  • 长格式转换后,hue参数指定分类变量Category,会在每个帐篷类别下生成对应分组的箱线图;
  • xticks(rotation=45)用于旋转x轴标签,避免因名称过长导致重叠;
  • tight_layout()自动调整图表元素位置,优化显示效果。

内容的提问来源于stack exchange,提问作者Jan Schatz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:45:00