持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情
总计:今天是十月更文计划第八天,第十七篇
Pyplot绘图
Python 扩展库Matplotlib依赖于扩展库numpy和标准库tkinter,可以绘制多种形式的图形,如折线图、散点图、饼状图、柱状图、雷达图等。
matplotlib 主要包括pylab、pyplot等绘图模块和大量用于字体、颜色、图例等元素的管理与控制的模块
#%% md
使用pylab或pyplot绘图的一般过程为:
首先生成或读入数据,然后根据实际需要绘制折线图、散点图、柱状图、饼状图、雷达图或三维曲线和曲面,
接下来设置坐标轴标签(可以使用matplotlib.pyplot模块的xlabel()、ylabel()函数或轴域的set_xlabel()、set_ylabel()方法)、坐标轴刻度(可以使用matplotlib.pyplot模块的xticks()、yticks()函数或轴域的set_xticks()、set_yticks()方法)、图例(可以使用matplotlib.pyplot模块的legend()函数)、标题(可以使用matplotlib.pyplot模块的title()函数)等图形属性,
最后显示或保存绘图结果。
每一种图形都有特定的应用场景,对于不同类型的数据和可视化要求,要选择最合适类型的图形进行展示,不能生硬地套用某种图形。
## 绘制各员工在不同柜台业绩平均值的柱状图
import pandas as pd
import matplotlib.pyplot as plt #导入
import matplotlib.font_manager as fm #用于创建字体
# 读取全部数据,使用默认索引
df = pd.read_excel(r'超市营业额2.xlsx')
# 修改异常值
df.loc[df.交易额>3000, '交易额'] = 3000
df.loc[df.交易额<200, '交易额'] = 200
# 删除重复值
df.drop_duplicates(inplace=True)
# 填充缺失值
df['交易额'].fillna(df['交易额'].mean(), inplace=True)
# 使用交叉表得到每人在各柜台交易额平均值
print(''.ljust(20,'='))
df_group = pd.crosstab(df.姓名, df.柜台, df.交易额, aggfunc='mean').apply(round)
# 绘制柱状图,默认使用index作为横坐标
df_group.plot(kind='bar')
font = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf') #指定一个字体文件,生成楷体
plt.xlabel('员工业绩分布', fontproperties='simhei') #设置X周的文本,指定字体为黑体
plt.xticks(fontproperties='simhei') #设置x周刻度的字体
plt.legend(prop=font) #显示图例,设置刚才创建的字体
# 显示绘制结果
plt.show()
输出的结果如下: