我可以使用seaborn的countplot显示我的数据吗

2024-04-28 19:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法与seaborn一起发布一些HR分数数据。 我想使用计数图来显示y轴上员工的数据 将分数类别作为色调,并在x轴上显示其分数的值范围

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

btraits = {'Behavioural Traits': ['Communicaiton', 'Teamwork', 'Leadership', 'Negotiation', 'Agreeableness'],
'James':[0,-2,0,-2,-2],
'John':[2,0,0,2,-1],
'Gary':[0,-1,0,1,-3],
'Raymond':[3,-5,0,1,0]}
df = pd.DataFrame(btraits)
df.set_index('Behavioural Traits', inplace=True)

sns.countplot(data=btraits, y='columns', hue='index')

Tags: 数据importdfindexas员工hrseaborn
2条回答
  • 我想你真的需要一个barplot作为这个数据
  • countplot使用条形图显示每个分类箱中的观察计数
  • 需要将数据stacked转换为长格式
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

btraits = {'Behavioural Traits': ['Communicaiton', 'Teamwork', 'Leadership', 'Negotiation', 'Agreeableness'],
           'James': [0,-2,0,-2,-2],
           'John': [2,0,0,2,-1],
           'Gary': [0,-1,0,1,-3],
           'Raymond': [3,-5,0,1,0]}

df = pd.DataFrame(btraits)
df.set_index('Behavioural Traits', inplace=True)

                    James  John  Gary  Raymond
Behavioural Traits                            
Communicaiton           0     2     0        3
Teamwork               -2     0    -1       -5
Leadership              0     0     0        0
Negotiation            -2     2     1        1
Agreeableness          -2    -1    -3        0

# stack the columns
dfs = df.stack().reset_index().rename(columns={'level_1': 'names', 0: 'values'})

   Behavioural Traits    names  values
0       Communicaiton    James       0
1       Communicaiton     John       2
2       Communicaiton     Gary       0
3       Communicaiton  Raymond       3
4            Teamwork    James      -2
5            Teamwork     John       0
6            Teamwork     Gary      -1
7            Teamwork  Raymond      -5
8          Leadership    James       0
9          Leadership     John       0
10         Leadership     Gary       0
11         Leadership  Raymond       0
12        Negotiation    James      -2
13        Negotiation     John       2
14        Negotiation     Gary       1
15        Negotiation  Raymond       1
16      Agreeableness    James      -2
17      Agreeableness     John      -1
18      Agreeableness     Gary      -3
19      Agreeableness  Raymond       0

计数图

sns.countplot(data=dfs, x='names', hue='Behavioural Traits')

enter image description here

条形图

sns.barplot(x='names', y='values', hue='Behavioural Traits', data=dfs)

enter image description here

Countplot基本上返回发生次数

您可以为每个分类变量尝试barplot。 例如:sns.barplot(x=df.index,y='James',data=df)

相关问题 更多 >