有三种常见的分类数据的可视化方式:
- 柱状图
- 按组绘制的图表
- 镶嵌图
下面的例子展示了如何在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)

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']);

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