pythonfacetgrid 与 sns.barplot 和地图;目标没有重叠的组条

2024-02-15

我目前正在实现facetgrid的代码,其中条形图的子图分别具有两个不同的组(“类型”)。我打算得到一个情节,其中不同的组不堆叠也不重叠。我正在使用以下代码

g = sns.FacetGrid(data,
            col='C',
            hue = 'type',
            sharex=False,
            sharey=False,
            size=7,
            palette=sns.color_palette(['red','green']),
            )
g = g.map(sns.barplot, 'A', 'B').add_legend()

数据是 pandas 长格式 df,具有以下示例结构:

data=pd.DataFrame({'A':['X','X','Y','Y','X','X','Y','Y'],
               'B':[0,1,2,3,4,5,6,7],
               'C':[1,1,1,1,2,2,2,2],
               'type':['ctrl','cond1','ctrl','cond1','ctrl','cond1','ctrl','cond1']}
                )

在创建的条形图中,我现在得到了两组完全重叠的条形图,因此缺少 ctrlis,请参见下文。但是,我打算分别获取相邻的不重叠的条形。如何实现这一目标?我的真实代码每个图有更多条形,您可以在其中看到重叠的颜色(此处完全覆盖)


这个答案 https://stackoverflow.com/a/52673435/1356000展示了如何直接使用 FacetGrid。

但是,如果您安装了 0.9.0,我建议您使用the new catplot()功能 https://seaborn.pydata.org/generated/seaborn.catplot.html#seaborn.catplot这将产生正确的(至少我认为?)情节。请注意,该函数返回一个FacetGrid目的。您可以将 kwargs 传递给调用以自定义结果FacetGrid,或随后修改其属性。

g = sns.catplot(data=data, x='A', y='B', hue='type', col='C', kind='bar')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pythonfacetgrid 与 sns.barplot 和地图;目标没有重叠的组条 的相关文章

随机推荐