python - 更改facetgrid 上每个hist 面的颜色?

标签 python pandas matplotlib seaborn

我正在使用来自 kaggle 的泰坦尼克号数据集,我想通过不同的颜色区分幸存者 (1) 和非幸存者 (0) 的各个方面。

这是我当前的 FacetGrid:

enter image description here

左边的面(图)是那些没有幸存的人。我希望它们是红色的。正确的刻面目前状况良好。

所以我想要的输出看起来像这样。 我还想为每个方面添加一个简单的图例(红色 = '死亡',蓝色 = '幸存') enter image description here

这是一个示例数据框完整集

               Sex    Survived
PassengerId                  
1              male         0
2            female         1
3            female         1
4            female         1
5              male         0
6              male         0
7              male         0
8              male         0
9            female         1
10           female         1
11           female         1
12           female         1
13             male         0
14             male         0
15           female         0
16           female         1
17             male         0
18             male         1
19           female         0

这是我当前拥有的代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style ="ticks")
h=sns.FacetGrid(Full_set, col ='Survived', row ='Sex', palette = 'Set1', size =2, aspect =2)
h =h.map(plt.hist, 'Age')


plt.show()

我在文档 ( http://seaborn.pydata.org/generated/seaborn.FacetGrid.html#seaborn.FacetGrid ) 中浏览了 FacetGrid 的 API,但没有看到任何示例或实现我想要的方法。 编辑:

我尝试了hue,但我遇到的问题是,在历史上,图形最终重叠,并用较小的值完全覆盖图形。 谢谢!

最佳答案

hue 参数的工作方式与 groupby 对象类似。因此,当根据 Survived 列设置 hue 时,它会因其唯一值(即 0 和 1)而成为一个单独的实体。然后使用它的关键字 arg,输入要为每个分组实例显示的颜色(0→红色,1→蓝色)。

可能性 1:

d = {'color': ['r', 'b']}
g = sns.FacetGrid(df, row='Sex', col='Survived', hue_kws=d, hue='Survived')
g.map(plt.hist, 'Age')

可能性 2:

g = sns.FacetGrid(df, row='Sex', col='Survived', hue='Survived', palette='Set1')
g.map(plt.hist, 'Age')

Image

关于python - 更改facetgrid 上每个hist 面的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362362/

相关文章:

python - 在 matplotlib 中绘制最后 100 个点

python - 字符串替换列 pandas

python - 在函数内动态更改全局变量值

python - 使用 Python 3 迭代字符串

python - 如何在多索引 Pandas Dataframe 中按组更新前 N 行的值?

python - Pandas 数据框计数行值

python - 用于提取域和子域的正则表达式

python - 根据许多不同列的条件从数据框中删除行

python - 在使用 seaborn 绘图分配斧头对象时遇到问题

python - 在 matplotlib 中绘制 (x, y) 坐标列表