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

如何用Seaborn基于宽格式数据绘制拆分小提琴图或分组箱线图?

用Seaborn实现指定样式的分组小提琴图

首先把你提供的原始数据整理成清晰的Markdown表格:

methodFeature1Feature2Feature3Feature4Feature5Feature6
Avaluevaluevaluevaluevaluevalue
Bvaluevaluevaluevaluevaluevalue
Avaluevaluevaluevaluevaluevalue

你想要的小提琴图样式是:X轴为各个特征(Feature1到Feature6),Y轴对应特征的全部数值,以method作为分组色调(hue)——你说得完全没错,要实现这个效果,第一步就是把宽格式的数据重构为长格式,Seaborn的分类绘图函数对长格式数据的支持会更顺畅。下面是具体的实现步骤:

1. 导入必要的库

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

2. 准备数据(或读取你的真实数据)

先把你的表格转成Pandas DataFrame,如果是真实数据,直接用pd.read_csv()或对应方法读取即可:

# 这里用示例数值代替你写的value,方便演示效果
data = {
    'method': ['A', 'B', 'A'],
    'Feature1': [1.2, 2.3, 1.5],
    'Feature2': [3.1, 4.2, 3.5],
    'Feature3': [2.0, 2.8, 2.2],
    'Feature4': [5.1, 6.3, 5.5],
    'Feature5': [4.0, 4.9, 4.3],
    'Feature6': [1.8, 2.5, 2.0]
}
df = pd.DataFrame(data)

3. 重构数据为长格式

使用Pandas的melt()函数,把每个特征列转成单独的行,同时保留method和对应的数值:

# id_vars:要保留的列;var_name:新的特征列名;value_name:数值列名
df_long = pd.melt(df, id_vars='method', var_name='Feature', value_name='Value')

转换后的长格式数据结构大概是这样的:

methodFeatureValue
AFeature11.2
BFeature12.3
AFeature11.5
AFeature23.1
.........

4. 绘制分组小提琴图

用sns.violinplot(),设置split=True可以让同一特征下的两个method分组小提琴图合并在一起,和你想要的示例图样式完全匹配:

# 设置绘图风格
sns.set_style('whitegrid')

# 创建画布
plt.figure(figsize=(12, 6))

# 绘制小提琴图
sns.violinplot(
    data=df_long,
    x='Feature',
    y='Value',
    hue='method',
    split=True,  # 同一特征下的分组合并展示
    palette='Set2',  # 自定义调色板
    inner='quartile'  # 显示四分位数线,让图更直观
)

# 添加标题和标签
plt.title('Violin Plot of Features Grouped by Method', fontsize=14)
plt.xlabel('Features', fontsize=12)
plt.ylabel('Value', fontsize=12)

# 显示图例
plt.legend(title='Method')

# 展示图像
plt.show()

关键小提示

  • 为什么要重构数据?因为Seaborn的分类绘图函数(包括violinplot)是为长格式数据设计的——每一行对应一个独立的观测值,这样才能轻松按Feature和method进行分组展示。
  • 如果你不想合并同一特征下的分组,只需要去掉split=True参数即可,每个分组会显示独立的小提琴图。
  • 你还可以调整palette(调色板)、inner(小提琴内部的显示元素,比如box、point等)、figsize等参数,自定义图的外观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:41:52