Matplotlib是Python中一个二维绘图包,能够非常简单的实现数据可视化。Matplotlib最早由John Hunter于2002年启动开发,其目的是为了构建一个Matlab式的绘图函数接口。下面详细介绍Matplotlib图像构成、Matplotlib图像基本绘图流程、中文字符显示、坐标轴字符刻度标注等基本绘图知识。
Matplotlib图像大致可以分为如下4个层次结构
为了方便快速绘图,Matplotlib通过pyplot模块提供了一套和Matlab类似的命令API,将众多绘图对象所构成的复杂结构隐藏在这套API内部,这些对象对应图形的一个个图形元素(如坐标轴、曲线、文字等),模块给每个对象分配函数,以此对该图形元素进行操作,而不影响其他部分。创建好画布后,只需调用pyplot模块所提供的函数,仅几行代码就可以实现添加、修改图形元素或在原有图形上绘制新图形。
pyplot基本绘图流程:
首先是创建画布与创建子图。第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可将画布划分为多个部分。然后使用对象方法来完成其余的工作。
其次是添加画布内容。第二部分是绘图的主体部分。添加标题、坐标轴名称等步骤与绘制图形是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签,但是添加图例一定要在绘制图形之后。
pyplot添加各类标签的常用函数:
函数名称函数作用title在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数xlabel在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数ylabel在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数xlim指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识ylim指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识xticks指定x轴刻度的数目与取值yticks指定y轴刻度的数目与取值legend指定当前图形的图例,可以指定图例的大小、位置、标签
最后是图形保存与展示。绘制图形之后,可使用matplotlib.pyplot.savefig()函数保存图片到指定路径,使用matplotlib.pyplot.show()函数展示图形。
值得注意的是默认的pyplot字体并不支持中文字符的显示,因此需要通过修改font.sans-serif参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“-”无法正常显示,因此需要同时修改axes.unicode_minus参数。
Matplotlib绘制的常用图形包括散点图、线性图、柱状图、直方图、饼图、箱线图和子图。
散点图又称为散点分布图,是以利用坐标点(散点)的分布形态反映特征间的相关关系的一种图形。散点图的绘图函数为:scatter(x, y, [可选项])。其中x表示横轴坐标数据列,y表示纵轴坐标数据列,可选项包含颜色、透明度等。
线性图的绘图函数为plot(X,Y,[可选项]),其中X表示横轴坐标数据列,Y表示纵轴坐标数据列,可选项为绘图设置,包括图形类型:散点图、虚线图、实线图等;线条颜色:红、黄、蓝、绿等;数据点形状:星型、圆圈、三角形等。
与Matlab类似,柱状图的绘图函数为bar(x,y,[可选项]),其中X表示横轴坐标数据列,Y表示纵轴坐标数据列,可选项为绘图设置。
与Matlab类似,直方图的绘图函数为hist(X,[可选项]),其中X表示横轴坐标数据列,可选项为绘图设置。
与Matlab类似,饼图的绘制函数为pie(X,Y,[可选项]),其中X表示待绘制的数据序列,Y表示对应的标签,可选项表示绘图设置。这里常用的绘图设置为百分比的小数位,可以通过autopct属性类设置。
箱线图是利用数据中的最小值、上分位数、中位数、下四分位数与最大值这5个统计量来描述连续型特征变量的一种方法。它也可以粗略地看出数据是否具有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。
箱线图的上边缘为最大值,下边缘为最小值,但范围不超过盒型各端加1.5倍IQR(四分位距,即上四分位数与下四分位数的极差)的距离。超出上下边缘的值即视为异常值。箱线图的绘图函数为boxplot(x,[可选项]),其中x为待绘图的数据数组列表。
子图是指在同一个绘图界面上,绘制不同类型的图像。通过子图,可以在同一个界面上实现多种不同类型图像之间的比较,进而提高了数据可读性和可视化效果。在Matplotlib绘图基本流程中已经简单介绍了子图的命令subplot()
感谢整理分享,收藏。
感觉画图还是Matplotlib最灵活
我的天哪,你一个帖子赚多少分呀
数了一下,你一个帖子就获得了18个积分【/拍桌】
学到了,学到了【滑稽】
Matplotlib图像大致可以分为如下4个层次结构
为了方便快速绘图,Matplotlib通过pyplot模块提供了一套和Matlab类似的命令API,将众多绘图对象所构成的复杂结构隐藏在这套API内部,这些对象对应图形的一个个图形元素(如坐标轴、曲线、文字等),模块给每个对象分配函数,以此对该图形元素进行操作,而不影响其他部分。创建好画布后,只需调用pyplot模块所提供的函数,仅几行代码就可以实现添加、修改图形元素或在原有图形上绘制新图形。
pyplot基本绘图流程:
首先是创建画布与创建子图。第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可将画布划分为多个部分。然后使用对象方法来完成其余的工作。
其次是添加画布内容。第二部分是绘图的主体部分。添加标题、坐标轴名称等步骤与绘制图形是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签,但是添加图例一定要在绘制图形之后。
pyplot添加各类标签的常用函数:
函数名称
函数作用
title
在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数
xlabel
在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数
ylabel
在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数
xlim
指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识
ylim
指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识
xticks
指定x轴刻度的数目与取值
yticks
指定y轴刻度的数目与取值
legend
指定当前图形的图例,可以指定图例的大小、位置、标签
最后是图形保存与展示。绘制图形之后,可使用matplotlib.pyplot.savefig()函数保存图片到指定路径,使用matplotlib.pyplot.show()函数展示图形。
值得注意的是默认的pyplot字体并不支持中文字符的显示,因此需要通过修改font.sans-serif参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“-”无法正常显示,因此需要同时修改axes.unicode_minus参数。
Matplotlib绘制的常用图形包括散点图、线性图、柱状图、直方图、饼图、箱线图和子图。
散点图又称为散点分布图,是以利用坐标点(散点)的分布形态反映特征间的相关关系的一种图形。散点图的绘图函数为:scatter(x, y, [可选项])。其中x表示横轴坐标数据列,y表示纵轴坐标数据列,可选项包含颜色、透明度等。
线性图的绘图函数为plot(X,Y,[可选项]),其中X表示横轴坐标数据列,Y表示纵轴坐标数据列,可选项为绘图设置,包括图形类型:散点图、虚线图、实线图等;线条颜色:红、黄、蓝、绿等;数据点形状:星型、圆圈、三角形等。
与Matlab类似,柱状图的绘图函数为bar(x,y,[可选项]),其中X表示横轴坐标数据列,Y表示纵轴坐标数据列,可选项为绘图设置。
与Matlab类似,直方图的绘图函数为hist(X,[可选项]),其中X表示横轴坐标数据列,可选项为绘图设置。
与Matlab类似,饼图的绘制函数为pie(X,Y,[可选项]),其中X表示待绘制的数据序列,Y表示对应的标签,可选项表示绘图设置。这里常用的绘图设置为百分比的小数位,可以通过autopct属性类设置。
箱线图是利用数据中的最小值、上分位数、中位数、下四分位数与最大值这5个统计量来描述连续型特征变量的一种方法。它也可以粗略地看出数据是否具有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。
箱线图的上边缘为最大值,下边缘为最小值,但范围不超过盒型各端加1.5倍IQR(四分位距,即上四分位数与下四分位数的极差)的距离。超出上下边缘的值即视为异常值。箱线图的绘图函数为boxplot(x,[可选项]),其中x为待绘图的数据数组列表。
子图是指在同一个绘图界面上,绘制不同类型的图像。通过子图,可以在同一个界面上实现多种不同类型图像之间的比较,进而提高了数据可读性和可视化效果。在Matplotlib绘图基本流程中已经简单介绍了子图的命令subplot()
感谢整理分享,收藏。
感觉画图还是Matplotlib最灵活
我的天哪,你一个帖子赚多少分呀
数了一下,你一个帖子就获得了18个积分【/拍桌】
学到了,学到了【滑稽】