matplotlib 海运FacetGrid中的色调参数

laawzig2  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(153)

我遇到Facetgrid问题:当我使用***hue***参数时,x标签显示的顺序错误,并且与数据不匹配。

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

titanic = sns.load_dataset("titanic")
g = sns.FacetGrid(titanic, col='pclass', hue='survived')
g = g.map(sns.swarmplot, 'sex', 'age')

带色调的面网格:

从这一点看,似乎有更多的女性比男性,但这是不正确的。
如果我现在删除***hue***选项,那么我会得到一个正确的分布:在所有的P类中男性多于女性。

g = sns.FacetGrid(titanic, col='pclass')
g = g.map(sns.swarmplot, 'sex', 'age')

无色调的面网格:

这是怎么回事?我用的是Seaborn0.7.0

gijlo24d

gijlo24d1#

如果要将FacetGrid与其中一个分类绘图函数一起使用,则需要通过将变量声明为分类变量或使用orderhue_order参数来提供顺序信息:

g = sns.FacetGrid(titanic, col='pclass', hue='survived')
g = g.map(sns.swarmplot, 'sex', 'age', order=["male", "female"], hue_order=[0, 1])

但是,通常最好使用catplot,它可以为您处理这种簿记工作,还可以保存一些键入操作:

g = sns.catplot("sex", "age", "survived", col="pclass", data=titanic, kind="swarm")

相关问题