Pandas:如何从交叉表创建条形图


您可以使用以下方法创建条形图以可视化 Pandas 交叉表中的计数:

方法 1:创建聚类条形图

 import matplotlib. pyplot as plt

my_crosstab. plot (kind=' bar ')

方法 2:创建堆积条形图

 import matplotlib. pyplot as plt

my_crosstab. plot (kind=' bar ', stacked= True )

以下示例展示了如何在实践中通过以下 pandas 交叉表使用这些方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#create crosstab to display count of players by team and position
my_crosstab = pd. crosstab (df. team , df. position )

#view crosstab
print (my_crosstab)

FG position
team          
AT 12
B 3 1
C 2 2

示例 1:从交叉表创建分组条形图

我们可以使用以下语法从交叉表创建分组条形图:

 import matplotlib. pyplot as plt

#create grouped bar plot
my_crosstab. plot (kind=' bar ', rot= 0 ) 

pandas 从交叉表中分组条形图

注意rot=0参数将 x 轴标签旋转 90 度,使其更易于阅读。

x 轴显示团队名称,而分组条显示每个位置的频率计数。

例如,我们可以看到:

  • A队有1名球员,位置为F。
  • A队有2名球员,位置为G。

等等。

示例 2:从交叉表创建堆积条形图

我们可以使用以下语法从交叉表创建堆积条形图:

 import matplotlib. pyplot as plt

#create stacked bar plot
my_crosstab. plot (kind=' bar ', stacked= True , rot= 0 ) 

注意stacked=True参数允许我们创建堆叠条形图而不是分组条形图。

x 轴显示团队名称,而堆叠条显示每个位置的频率计数。

例如,我们可以看到:

  • A队有1名球员,位置为F。
  • A队有2名球员,位置为G。
  • A队共有3名队员。

等等。

当我们想要可视化 x 轴上每个唯一值的项目总数时,这种类型的图特别有用。

注意:您可以在此处找到 pandas crosstab()函数的完整文档。

其他资源

以下教程解释了如何执行其他常见的 panda 任务:

Pandas:如何创建带有百分比的交叉表
Pandas:如何在 crosstab() 函数中使用 aggfunc
Pandas:如何在条形图中注释条形

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注