Seaborn 多列

Seaborn with multiple Columns

我有一个数据框data_gender:

gender math_score reading_score writing_score avg_score
female 63.63 72.61 72.47 69.57
male 68.73 65.47 63.31 65.84

我想制作一个 seaborn 条形图,看起来像我用 matplotlib 用简单的线条制作的这个图

data_gender.plot.bar(figsize=(8,6))

如何使用 seaborn 来实现?

您可以使用 melt and pass the data to sns.barplot 进行整形:

sns.barplot(data=data_gender.melt(id_vars='gender',
                                  value_name='score', var_name='course'),
            x='gender', y='score', hue='course')

输出:

sns.barplot(x='gender', y='score', 色调='course', 数据=data_gender)