使用附加分类变量自定义 seaborn 计数图

Customizing a seaborn countplot with additional categorical variable

我正在按照那里的指导创建类似于上一个示例的条形图:

https://seaborn.pydata.org/generated/seaborn.countplot.html

但是,我只想显示幸存的 =1 情节。

我的数据非常相似,我的图表看起来像这样(所以我只想显示图表的右边部分,左边 =yes)。

另外,订单参数取什么值?我希望我可以按计数对它们进行排序。它不需要降序或降序。

您可以使用 data=df[df['left']=='yes'] 来绘制正确的部分。 要按计数排序,您可以使用 ... .value_counts().index 作为 order= 参数。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

prob = np.random.rand(7) + 0.1
prob /= prob.sum()
df = pd.DataFrame({'department': np.random.choice(['helium', 'neon', 'argon', 'krypton', 'xenon', 'radon', 'oganesson'],
                                                  1000, p=prob),
                   'left': np.random.choice(['yes', 'no'], 1000)})
sns.set_style('white')
filter = df['left'] == 'yes'
g = sns.catplot(data=df[filter], kind='count', y='department', palette='mako_r',
            order=df[filter]['department'].value_counts(ascending=True).index)
for ax in g.axes.flat:
    ax.bar_label(ax.containers[0], fontsize=12)
    ax.margins(x=0.1)
plt.tight_layout()
plt.show()