【问题标题】:How to plot multiple sub-plots based on one column with-respect-to another column?如何基于一列相对于另一列绘制多个子图?
【发布时间】:2021-01-25 11:25:36
【问题描述】:
我正在根据不同的“工作角色”在“员工-工作-满意度”级别上工作。我分析了 Data 并绘制了 Graph 。但即使会做一些样式或格式化(一旦看看下面)它也不能很好地工作。相反,我决定为每个“工作角色”绘制单独的“员工-工作-满意度”图。
我用过的代码:
sns.countplot(x='EmpJobSatisfaction', hue='EmpJobRole' , data=comp2)
输出:
绘制单独的图表会很方便,这样我就可以轻松解释每种工作类型的满意度。
【问题讨论】:
标签:
python
matplotlib
data-science
seaborn
data-visualization
【解决方案1】:
您可以使用catplot并将角色指定为列:
import pandas as pd
import numpy as np
import seaborn as sns
roles = ['role' + str(i) for i in range(12)]
comp2 = pd.DataFrame({'EmpJobSatisfaction':np.random.randint(1,4,500),
'EmpJobRole':np.random.choice(roles,500)
})
sns.catplot(data=comp2,x='EmpJobSatisfaction',col="EmpJobRole",kind="count",col_wrap=3,height=1.2,aspect=2)
或者做一个堆积条形图:
pd.crosstab(comp2['EmpJobRole'],comp2['EmpJobSatisfaction']).plot(kind='bar', stacked=True)