如何在Pandas中绘制分类数据图(附实例)

558 阅读2分钟

有三种常见的分类数据的可视化方式:

  • 柱状图
  • 按组绘制的图表
  • 镶嵌图

下面的例子展示了如何在Python中为pandas DataFrame创建这些图表中的每一个。

例1:条形图

下面的代码展示了如何创建一个条形图来显示某个pandas DataFrame中球队的频率:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'],
                   'points': [18, 22, 29, 25, 14, 11, 10, 15]})

#create bar plot to visualize frequency of each team
df['team'].value_counts().plot(kind='bar', xlabel='Team', ylabel='Count', rot=0)

plot categorical data in pandas

X轴显示每个球队的名字,Y轴显示每个球队在DataFrame中的频率。

注意:参数rot=0告诉pandas将x轴的标签旋转到与x轴平行。

例2:按组绘制的膨胀图

分组膨胀图是一种有用的方法,可以将数字变量按分类变量分组后进行可视化。

例如,下面的代码显示了如何创建按球队分组的得分分布的boxplots:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [18, 22, 29, 25, 14, 11, 10, 15]})

#create boxplot of points, grouped by team
df.boxplot(column=['points'], by='team', grid=False, color='black')

X轴显示球队,Y轴显示每个球队的得分分布。

例3:马赛克图

马赛克图是一种在一个图中显示两个不同分类变量的频率的图。

例如,下面的代码显示了如何创建一个马赛克图,在一个图中显示分类变量 "结果 "和 "球队 "的频率。

import pandas as pd
from statsmodels.graphics.mosaicplot import mosaic

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   'result': ['W', 'L', 'L', 'W', 'W', 'L', 'L', 'W', 'W']})

#create mosaic plot
mosaic(df, ['team', 'result']);

mosaic plot for categorical data in pandas

X轴显示团队,Y轴显示每个团队的结果频率。