使用Seaborn从数据框进行多次绘图

时间:2019-09-26 15:30:47

标签: python pandas matplotlib seaborn

我正在尝试改善Python的可视化效果。假设我有以下数据:

data = {'animal':['cat', 'tiger', 'leopard', 'dog'], 'family':['mustelids ','felidae','felidae', 'canidae'], 'family_pct':[6.06,33.33,9.09,12.12]} 

df = pd.DataFrame(data) 

我要创建一个如下的地块:

fig, ax = plt.subplots()

sns.barplot(x = 'family', y = 'family_pct', hue='animal', data = df)

但是,我希望每个“家庭”都单独绘制(一个针对鼬类动物的地块,一个针对猫科动物的地块,一个针对犬科的动物地块),而不是在同一地块上。我实际上想将图表遍历family列的每个值。但是,我不确定该如何处理。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用catplot()组合barplot()和FacetGrid。这允许在其他类别变量中进行分组。与直接使用FacetGrid相比,使用catplot()更安全,因为它可以确保各个方面的变量顺序同步:

sns.catplot(x = 'family', y = 'family_pct', hue='animal', col='family', data = df, kind='bar', height=4, aspect=.7)

查看更多详细信息here