如何订购seaborn pointplot

时间:2017-10-24 18:18:23

标签: python-3.x kernel seaborn kaggle

来自kaggle Titanic竞赛的代码kernel

grid = sns.FacetGrid(train_df, row='Embarked', size=2.2, aspect=1.6)
grid.map(sns.pointplot, 'Pclass', 'Survived', 'Sex', palette='deep')
grid.add_legend()

它会产生错误的情节,反色的情节。我想知道如何修复这个确切的代码片段。我尝试将关键字paramas添加到grid.map()调用 - order=["male", "female"], hue_order=["male", "female"],但随后情节变为空。

1 个答案:

答案 0 :(得分:4)

在对grid.map(sns.pointplot, 'Pclass', 'Survived', 'Sex', palette='deep')的代码调用中,x类别为Pclass,色调类别为Sex。因此,您需要添加

order = [1,2,3], hue_order=["male", "female"]

完整的例子(我在那里拍摄了带有seaborn的泰坦尼克号 - 什么文字游戏!):

import seaborn as sns
import matplotlib.pyplot as plt

df = sns.load_dataset("titanic")

grid = sns.FacetGrid(df, row='embarked', size=2.2, aspect=1.6)
grid.map(sns.pointplot, 'pclass', 'survived', 'sex', palette='deep', 
             order=[1,2,3], hue_order=["female","male"])
grid.add_legend()

plt.show()

enter image description here

请注意,虽然肯定需要hue_order,但您可以忽略order。虽然这会引发警告,但正确的顺序是由于这些值是数字的,因此会自动排序。