内容正文:
任务9.2 数据可视化库matplotlib的使用
解析中国夏奥之旅
【任务描述】
2022年冬奥会在北京的举行,这让小T有了回顾中国奥运之旅的想法。他收集了中国参加的历年夏季奥运会奖牌,并希望以图形化的界面呈现奖牌数据,从而去发现中国体育健儿在奥运会上成长、变强的历程。
9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅
9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅
图表Matplotlib库:
图表种类?
怎么绘制?
【任务分析】
用matplotlib库实现数据可视化,从中国体育健儿历年金牌获取数折线图、最近一届夏季奥运会各国金牌数量占比饼图、历年各类奖牌数柱状图来分析中国体育健儿的夏季奥运之旅,思路如下:
(1)创建画布,在一块画布上显示这三种图表。
(2)根据数据画出折线图、饼图,柱状图。
(3)保存并显示图表。
9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅
9.2.1 NumPy运算
9.2.2 Matplotlib常见操作
9.2.3 Matplotlib绘制常见图表
9.2.4 任务实现——解析中国夏奥之旅
9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅
9.2.2 Matplotlab库的常见操作
9.2.2 Matplotlib库的常见操作
Matplotlib库怎样安装?
绘制流程如何?
画布、子图怎样设置?
9.2.2 Matplotlib库的常见操作
Matplotlib是Python的一个扩展库,是一个Python 2D绘图库,可绘制直方图、折线图、饼图等图表。
pip install matplotlib
Matplotlib中pyplot模块是一个命令风格函数的集合,运用matplotlib.pyplot创建图形时,可以实现图形中创建绘图区域中绘制线条、使用标签装饰绘图等功能。
import matplotlib.pyplot as plt
9.2.2 Matplotlib库的常见操作
添加标题
添加X轴标题
修改X轴刻度与范围标题
添加Y轴标题
修改Y轴刻度与范围标题
是否创建子图
创建画布
是否绘
制完成
选定子图
绘
制
图
形
添
加
图
例
保
存
图
形
显
示
图
形
1创建画布和子图
2绘制图形内容
3保存和显示图形
是
是
否
否
1.创建画布
(1)num:可选参数,表示图形的编号或者名称,数字表示编号,字符串表示名称。如果不提供该参数,则会创建一个新窗口,窗口的编号会自增;如果提供该参数,该窗口的编号即为num值。
(2)figsize:可选参数,是一个元组(宽度,高度),用于设置画布的尺寸,以英寸为单位。
(3)dpi:可选参数,用于设置图形的分辨率。
(4)facecolor:可选参数,用于设置画板的背景颜色,其中颜色的设置是通过RGB,范围是'#000000'~'#FFFFFF'。
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, ...)
matplotlib.pyplot模块使用figure()函数创建空白画布,在画布中可以绘制图表内容、设定图表标签,其语法格式如下:
9.2.2 Matplotlib库的常见操作
import matplotlib.pyplot as plt
#设置背景色为#FFFF00的画布
plt.figure(figsize=(8,4),facecolor='#FFFF00')
plt.show()
9.2.2 Matplotlib库的常见操作
【例9-11】创建新画布。
2.创建多个子图
(1)nrows,ncols:表示一张图被分为nrows×ncols个区域。
(2)index:表示子图所处的位置,起始位置索引为1,即1<=index<=nrows×ncols。
(3)如果nrows、ncols、index三个参数的值都小于10,则可以简写subplot()函数里的参数,即subplot(323),等同于subplot(3,2,3)。
matplotlib.pyplot.subplot(nrows, ncols, index)
suplot(2,2,1)
suplot(2,2,2)
suplot(2,2,3)
suplot(2,2,4)
画布分成2×2的矩阵区域
9.2.2 Matplotlib库的常见操作
Figure对象允许被划分为多个绘图区域,称为子图,每个区域都拥有属于自己的坐标系统。在画布上创建多个绘图区域,使用subplot()函数实现,其基本语法格式如下:
9.2.2 Matplotlib库的常见操作
import matplotlib.pyplot as plt
plt.figure(num="画布",figsize=(8,4),facecolor='#FFFF00') plt.subplot(221) #添加2行2列中第一行第一个子图
plt.subplot(222) #添加2行2列中第一行第二个子图
plt.subplot(212) #添加2行2列中第二行一个子图
plt.show()
【例9-12】创建画布上的子图。
3.添加画布内容
函数名称 功能说明
plt.title('标题名称') 设置当前图表的标题
plt.xlabel('X轴名称') 设置当前图表X轴的标签名称
plt.ylabel('Y轴名称') 设置当前图表Y轴的标签名称
plt.xticks([刻标数组,刻度标签,rotation=旋转角度]) 指定X轴刻度的标签与取值,刻度默认是数值,但可以替换成标签形式(刻度标签是可选参数),旋转角度是指X轴刻度在水平方向上顺时针旋转的角度
plt.yticks([刻标数组,刻度标签,rotation=旋转角度]) 指定Y轴刻度的标签与取值,刻度默认是数值,但可以替换成标签形式(刻度标签是可选参数),旋转角度是指Y轴刻度在水平方向上顺时针旋转的角度
plt.xlim((X轴范围)) 设置或获取当前图表X轴范围
plt.ylim((Y轴范围)) 设置或获取当前图表Y轴范围
plt.legend([图例]) 在轴上设置一个图例
添加标题、坐标轴刻度、坐标轴名称等标签用以标注图表的信息,pyplot模块提供了为图形添加标签的函数,常用方法如下表:
一杂货店水果类、米面类商品的日销售量,需要以图表显示这些数据,图表上标明图表名称、x轴名称、x轴标签、y轴名称等内容??
水果类 粮食类
苹果 香蕉 车厘子 哈密瓜 大米 面粉 糯米粉 小米
销售量(斤) 25 12 35 20 30 22 40 5
图表标题
图例
Y轴刻度与标签
Y轴标题
X轴刻度和坐标
9.2.2 Matplotlib库的常见操作
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(num="画布",figsize=(6,3),facecolor='#FFFF00')
plt.title("水果/米面销售统计图") #添加图表名称
plt.xlabel("水果/米面名称") # 设置x轴名称
plt.xticks([1,2,3,4],['苹果/大米','香蕉/面粉','车厘子/糯米粉','哈密瓜/小米'],rotation=5)#设置x轴标签
plt.ylabel("水果/米面销量(斤)") #设置y轴名称
plt.ylim((0,40)) #设置y轴刻度范围
9.2.2 Matplotlib库的常见操作
【例9-13】添加画布内容。
plt.plot([1,2,3,4],[25,12,35,20]) #画出水果销量折线图
plt.plot([1,2,3,4],[30,22,40,5]) #画出米面销量折线图
plt.legend(['水果销量','米面销量']) #设置图例
plt.show()
9.2.2 Matplotlib库的常见操作
【例9-13】添加画布内容。
需要注意的是,在使用Matplotlib绘图时,图表中需要显示中文字符的地方,无法显示正确的中文,而以方格子显示,主要原因是Matplotlib库的配置信息中没有中文字体的相关信息,可以在程序中添加如下代码来解决:
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
9.2.2 Matplotlib库的常见操作
边学边练:
某同学本月花销如下:衣500元、食1300元、行120元
请帮他设置坐标轴中各项目。
4.保存和显示图表
plt.show()
plt.savefig(fname)
9.2.2 Matplotlib库的常见操作
$$