目录
本章学习使用pyplot模块绘制各类图形的基础语法,pyplot是绘制图形的前提。下面介绍使用Matplotlib库绘制常见的图形
一:掌握pyplot基础语法,创建画布,添加画布内容、保存与显示图形
Matplotlib基础绘图
本章学习使用pyplot模块绘制各类图形的基础语法,pyplot是绘制图形的前提。下面介绍使用Matplotlib库绘制常见的图形
一:掌握pyplot基础语法,创建画布,添加画布内容、保存与显示图形
1.基础语法
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline表示在行中显示图片,在命令行运行时报错
data = np.arange(0,1.1,0.01)#创建一个以0开始到1.1结束,步长为0.01
print(data)
plt.title('lines')#添加标题
plt.xlabel('x')#x轴名称
plt.ylabel('y')#y轴名称
plt.xlim((0,1))# 确定x轴范围
plt.ylim((0,1)) # 确定y轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1]) # 规定x轴刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1])# 确定y轴刻度
plt.plot(data, data** 2) # 添加y=x^2 曲线
plt.plot(data,data ** 4)# 添加y=x^4 曲线
plt.legend(['y=x^2' ,'y=x^4']) #添加图例
plt.show()
结果图如下:
2.设置pyplot的动态rc参数
(1)调节字体的rc参数
因为默认的pyplot字体不支持中文字符显示,所以我们需要通过设置font.sans-serif参数来改变绘图时的字体,可以使图形正常的显示中文。更改字体后,可能导致坐标中的部分字符无法显示,所以需要同时修改axes.unicode_minus参数。
#无法显示中文
plt.plot(x,y,label='$sin(x)$')#绘制sin(x)曲线图
plt.title('sin(x)曲线')#添加标题
plt.xlabel('x')#x轴名称
plt.ylabel('y')#y轴名称
plt.show()
#设置rc参数显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False#设置正常显示字符
plt.plot(x,y,label='$sin(x)$')#绘制sin(x)曲线图
plt.title('sin(x)曲线')#添加标题
plt.xlabel('x')#x轴名称
plt.ylabel('y')#y轴名称
plt.show()
二:Matplotlib库绘制常见的图形
1.绘制散点图
散点图(Scatter Diagram)又称为散点分布图,是以一个特征为横坐标,以另一个特为纵坐标,利用坐标点(散点)的分布形态反映这两个特征间的统计关系的一种图形。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] ='SimHei'#设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('./data/2001-2019年劳动力与就业人员数据.npz',
encoding='ASCII',allow_pickle=True)
columns = data['arr_0'] # 提取其中的 columns 数组,视为数据的标签
values = data['arr_1'] # 提取其的 values 数组,视为数据的存在位置
plt.figure(figsize=(12,6), dpi=1080) # 设置画布
plt.scatter(values[:, 0],values[:, 1],marker='o') # 绘制散点图
plt.xlabel('年份(年)')
plt.ylabel('劳动力人数(万人)')
plt.ylim(70000,85000) # 设置y轴范围
plt.xlim(2001,2020,1)
plt.title('2001-2019年劳动力与就业人员数据') # 添加图表标题
plt.show()
2.绘制折线图
折线图(Line Chart)是一种将数据点按照顺序连接起来的图形,可以看作将散点图按照x轴坐标顺序连接起来的图形。折线图的主要功能是查看因变量y随着自变量X改变的趋势,适合用于显示随时间根据常用比例设置)而变化的连续数据,同时还可以显示数量的差异和增长趋势的变化。
p = plt.figure(figsize=(12,6), dpi=1080) # 设置画布
plt.plot(values[:, 0],values[:, 2],c='g',linestyle=':') # 绘制散点图 linestyle表示线条类型
plt.xlabel('年份(年)')
plt.ylabel('劳动力人数(万人)')
plt.ylim(70000,80000) # 设置y轴范围
plt.xticks(range(2001,2020,1))
plt.title('2001-2019年与就业人员折线图') # 添加图表标题
plt.show()
3.点线图
使用marker函数来绘制点线图,点线图是通过线将离散的的点连接起来,不是函数图,几乎不可能做到曲线平滑并且通过所有点。但是可以通过选择绘图细节中的连线样式把默认的线段调整为曲线。
p = plt.figure(figsize=(12,6), dpi=1080) # 设置画布
plt.plot(values[:, 0],values[:, 2],c='g',linestyle=':',marker='o',alpha=0.3) # 绘制散点图 linestyle表示线条类型
plt.xlabel('年份(年)')
plt.ylabel('劳动力人数(万人)')
plt.ylim(70000,80000) # 设置y轴范围
plt.xticks(range(2001,2020,1))
plt.title('2001-2019年与就业人员点线图') # 添加图表标题
plt.show()
4.柱形图
常用于显示一段时间内的数据变化或者显示各项数据之间的比较情况。
columns = data['arr_0']#提取其中的columns数组,是为数据的标签
values = data['arr_1']#提取其中的values数组,是为数据的存在的位置
labels = ['城镇就业人员','乡村就业人员']
p = plt.figure(figsize=(6,6), dpi=1080) # 设置画布
plt.bar(range(2),values[-1,3:5],width=0.5)
plt.xlabel('类别')
plt.ylabel('人数(万人)')
plt.xticks(range(2),labels)
plt.title('2019年城乡就业人数柱形图') # 添加图表标题
plt.show()
5.饼图
绘制饼图饼图(Pie Graph)将各项数据的大小与各项数据总和的比例显示在一张“饼”中,以“饼块”的大小来确定每一项数据的占比。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的比例。
label = ['城镇就业人员','乡村就业人员']
explode = [0.01,0.01]
p = plt.figure(figsize=(6,6), dpi=1080) # 设置画布
plt.pie(values[-1,3:5],explode=explode,labels=label,autopct='%1.1f%%')
plt.title('2019年城乡就业人数分布柱形图') # 添加图表标题
plt.show()
6.箱线图
箱线图(Box Plot)也就是箱须图(BoxWhisker Plot), 它是由一组或多组
连续型
定量数据的「
最小观测值」、第一四分位数、中位数、第三分位数和「最大观测值」
来反映数据的分布情况的统计图,因外形似箱子而得名。
(又称盒图,箱图)
数据进行量化处理时分为
连续型数据
和
离散型数据。
label= ['城镇就业人员','乡村就业人员']
gdp = (list(values[:, 3]),list(values[:, 4]))
p= plt.figure(figsize=(6,6),dpi=1080)
plt.boxplot(gdp,notch=True,vert=True, labels=label,meanline=True,positions=[0,3])
plt.title('2001 年-2019 年城乡就业人数分布箱线图')
plt.show()
三:心得体会
通过本章的学习俺已经基本了解pyplot的基本语法,还有Matplotlib库绘制6个图形,发现通过简单语句就可以画出图形,还是蛮好的嘞。