使用 pandas 库将数据制作成饼图、条形图及直方图来进行数据展现
对于 分类型数据 ,通常使用 饼图 以及 条形图 进行数据展现
对于 数值型数据 ,通常使用 直方图 进行数据展现
系列
安装
使用 pandas 可视化数据需要安装 matplotlib ,使用 pipenv 安装
1
| pipenv install matplotlib
|
matplotlib版本 : 3.2.1
饼图
饼图 主要用于展现不同类别在整体中所占比重,通常是展现分类型数据 频率分布 的最佳选择
是否确认饼图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import pandas as pd from matplotlib import pyplot as plt
path = './abc.csv'
data = pd.read_csv(path, encoding='gb2312')
是否确认 = data['是否确认'].value_counts()/data['是否确认'].value_counts().sum()
plt.rcParams['font.sans-serif'] = ['STSong']
是否确认.plot( kind='pie', autopct='%.2f%%', figsize=(7, 7), title='是否确认频率分布图', label='' )
plt.show()
|

部门饼图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import pandas as pd from matplotlib import pyplot as plt
path = './abc.csv'
data = pd.read_csv(path, encoding='gb2312')
部门 = data['部门'].value_counts()/data['部门'].value_counts().sum()
plt.rcParams['font.sans-serif'] = ['STSong']
部门.plot( kind='pie', autopct='%.2f%%', figsize=(7, 7), title='部门频率分布图', label='' )
plt.show()
|

对于部门这种类别较多且对比不明显的使用条形图更好
条形图
条形图 是用一个单位长度表示一定的数量,根据数量的大小画成长短不同的直条
部门条形图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import pandas as pd from matplotlib import pyplot as plt
path = './abc.csv'
data = pd.read_csv(path, encoding='gb2312')
部门 = data['部门'].value_counts()/data['部门'].value_counts().sum()
plt.rcParams['font.sans-serif'] = ['STSong']
部门.plot( kind='bar', figsize=(13, 8), title='部门频率分布条形图' )
plt.show()
|

直方图
直方图 是用来描绘 数值型数据 频数分布或频率分布的图表
直方图 的柱之间没有空隙,非常适合连续性的数值型数据
abc.csv 文件中属于数值型的有 绩效 提成 及 基本工资 三列数据
基本工资分布直方图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import pandas as pd from matplotlib import pyplot as plt
path = './abc.csv'
data = pd.read_csv(path, encoding='gb2312')
最小值 = data['基本工资'].min()
最大值 = data['基本工资'].max()
print(最小值,最大值) '''输出 6000 10000 '''
绩效 = data['基本工资']
plt.rcParams['font.sans-serif'] = ['STSong']
绩效.plot( kind='hist', bins=[6000, 7000, 8000, 9000, 10000], figsize=(8, 5), title='基本工资分布直方图', grid=True
)
plt.show()
|
