来自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"]
,但随后情节变为空。
答案 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()
请注意,虽然肯定需要hue_order
,但您可以忽略order
。虽然这会引发警告,但正确的顺序是由于这些值是数字的,因此会自动排序。