使用 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()
|
