如何在barplot中标记分类变量?

时间:2019-04-05 18:12:52

标签: python bar-chart seaborn

我使用python开发了一些数据的条形图。如何为分类值开发标签?

数据代表0 =“ Female”和1 =“ Male”。开发的条形图仅显示0和1,但我想代表女性和男性。

使用以下代码,我得到以下输出:

sns.barplot(x=df.cp, y=df.chol, hue=df.sex, palette='spring')
plt.xlabel("Chest Pain Type")
plt.ylabel("Serum Cholesterol")
plt.show()

Output

我尝试将这段代码添加到上面,但是输出不符合预期,并且缺少颜色差异:

plt.legend(title="sex", loc="upper right", labels=["Female", "Male"])

Output

谢谢

1 个答案:

答案 0 :(得分:1)

seaborn的想法主要是可以直接使用数据框的列。因此,获得正确标签的最简单方法是在提供给数据框的数据中包含这些标签。例如。有将数字映射到名称的字典

{1 : "male", 0 : "female"}

您可以在绘制之前替换相应列中的数据:

sns.barplot(x="cp", y="chol", hue="sex", palette='spring', 
            data=df.replace({"sex" : {1 : "male", 0 : "female"}}))