使用附加分类变量自定义 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()
我正在按照那里的指导创建类似于上一个示例的条形图:
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()