具有多个类别的箱线图和小提琴图

Boxplot and violin plot with multiple categories

我有一个化学数据库。它包含4个不同类别的不同元素的化学分析。

我做了一个我的 df 的简化版本,实际上,它有更多的元素。

我想绘制比较每个类别的每个元素的箱线图和小提琴图。像这样:

你愿意帮我吗?

Seaborn 期望 long-form data 其中每一行对应一个观察值。

  1. melt数据由Category:

    melted = df.melt('Category', var_name='Element', value_name='Concentration')
    
    #    Category  Element  Concentration
    # 0         A       Au         0.1000
    # 1         A       Au         0.1500
    # 2         A       Au         0.4000
    # 3         B       Au         0.1000
    # ...
    # 10        D       Au         1.0000
    # 11        A       Ag         1.0000
    # ...
    # 20        D       Ag        40.0000
    # 21        D       Ag        56.0000
    
  2. 将此 melted 数据框与 boxplot and violinplot 一起使用:

    sns.boxplot(data=melted, x='Element', y='Concentration', hue='Category')
    
    sns.violinplot(data=melted, x='Element', y='Concentration', hue='Category')