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 )
注意: 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:如何在条形图中注释条形