数据可视化工具matplotlib入门教程.docx
Matp1ot1ibMatp1ot1ib是一个PyIhOn的2D绘图库。通过MatPk)IIib,开发者可以仅需要儿行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。通过学习MaIPIOuib,可让数据可视化,更直观的真实给用户。使数据更加客观、更具有说服力。MatP1Ot1ib是Python的库,又是开发中常用的库。matp1ot1ib开发环境搭建如果使用的是AnacondaPython开发环境,那么Matp1ot1ib已经被集成进Anaconda,并不需要单独安装。如果使用的是标准的Python开发环境,可以使用下面的命令安装Matp1ot1ib:1. Windows系统安装Matp1ot1ib,执行如下命令:pipinsta11matp1ot1ib如果要了解Matp1ot1ib更详细的情况,请访问官方网站。网址如下:https:matp1oHib.org。安装完MatPk)Uib后,可以测试一下MatPIOt1ib是否安装成功。进入PythOn的环境使用下面的语句导入matp1ot1ib.pyp1ot模块。如果不出错,就说明Matp1ot1ib已经安装成功了。importmatp1ot1ib.pyp1otaspit虽然上述的安装方式比较简单,但是有时候不能确保安装成功或者并不能保证安装的Matp1ot1ib版本适合当今Python环境。在这个时候,建议读者登录Python官方网站https:/www.python.org,点击菜单PyPI输入Matp1ot1ib到下载页如下图所示,在这个页面中查找与你使用的Python版本匹配的whee1文件(扩展名为“.wh1”的文件)。例如使用的是64位的Python3.6,则需要下载matp1ot1ib-3.1.0-cp36-cp36m-win-amd64.wh1oFi1ename,size&hashFi1etypePythonversionUp1oaddatematp1ot11b-3.1.0-cp36-cp36m-macosx_10_6_inte1.macosx_10_9_inte1.macosx_10_9_x86_64.macosx_10_10_inte1.macosx_10_10_x86_64,wh1(14.4MB)fSHA256Whee1cp36May19,2019matp1ot1ib-3.1.0-cp36-cp36m-many1inux1_x86_64.wh1(13.1MB)HSHA256Whee1cp36May19,2019matp1ot1ib-3.1.0-cp36-cp36m-win32.wh1(8.9MB)0SHA256Whee1cp36May19,2019matp1ot1ib-3.1.0cp36-cp36m-wi-amd64.wh1(9.1MB)I1iSHA256Whee1cp36May19,2019matp1ot1ib-3.1.0-cp37-cp37m-macosx_10_6_inte1.macosx_10_9Jnte1.macosx_10_9_x86_64.macosx_10_10_inte1.macosx_10_10.x86_64.wh1(14.4MB)IIiSHA256Whee1cp37May19,2019matp1ot11b-3.1.0-cp37-cp37m-many1inux1_x86_64.wh1(13.1MB)iSHA256Whee1Cp37May19,2019matp1ot1ib-3.1.0-cp37-cp37m-win32.wh1(8.9MB)0SHA256Whee1cp37May19,2019matp1ot1ib-3.1.0-cp37-cp37m-win_amd64.wh1(9.1MB)IiiSHA256Whee1cp37May19,2019matp1otiib-3.1.0.tar.gz(37.2MB)-SHA256SourceNoneMay19,2019当读者下载到得到的文件是matp1ot1ib-3.1.0-cp36-cp36m-win-amd64.wh1,将这个文件保存在“E:/matp”目录下。接下来,需要打开一个命令窗口,并切换到“e:/maip”目录下。执行如下命令安装Matp1ot1ibopipinsta11matp1ot1ib-3.1.0-cp36-cp36m-win-amd64.wh1绘制基础在使用MatP1OtIib绘制图形时,其中有两个最为常用的场景.一个是画点,一个是画线。pyp1ot基本方法的使用如下表。方法名说明tit1e()设置图表的名称x1abe1()设置X轴名称y1abe1()设置y轴名称xticks(x,ticks,rotation)设置X轴的刻度,rotation旋转角度yticks()设置y轴的刻度p1ot。绘制线性图表show()显示图表1egend()显示图例text(x,y,text)显示每条数据的值x,y值的位置figure(name,figsize=(w,h),dpi=n)设置图片大小绘制直线在使用MatP1otIib绘制线性图时,其中最简单的是绘制线图。在下面的实例代码中,使用MatPIOHib绘制了一个简单的直线。具体实现过程如下:(1) 导入模块pyp1ot,并给它指定别名pit,以免反复输入pyp1oto在模块pyp1ot中包含很多用于生产图表的函数。(2) 将绘制的直线坐标传递给函数p1ot()o(3) 通过函数p1t.show()打开Matp1ot1ib查看器,显示绘制的图形。【示例】根据两点绘制一条线importmatp1ot1ib.pyptotaspit#将(0,1)点和(2,4)连起来p1tpbt(0,2,1)p1t.show()w÷1÷J+回三IEi1在上述的实例代码中,使用两个坐标绘制一条直线,接下来使用平方数序列1、4、9、16和25来绘制一个折线图。绘制折线产”绘制折线图importmatp1ot1ib.pypbtaspitx=1,2,3,4,5SqUareS=1,4,9,16,25p1t.p1ot(x,squares)p1t.show()运行结果如下图:®figure1W÷+回三IE11x=2,34355y=4.81429设置标签文字和线条粗细在上面的实例直线结果不够完美,开发者可以绘制的线条样式进行灵活设置。例如:可以设置线条的粗细、设置文字等。尸例绘制折线图并设置样式importmatp1ot1ib.pypfotaspitdatas=1,2,3A5SqUareS=1,4,9,16,25p1t.p1ot(datas,squares,1inewidth=5)#设置线条宽度# 设置图标标题,并在坐标轴上添加标签p1t.tit1e('Numbers',fontsize=24)p1t.x1abe1(,datas,fontsize=14)p1t.yhbe1(,squares',fontsize=14)p1t.show()®Figure1×Numbersi÷1÷÷1¾11Ei1MaIPIot1ib默认情况不支持中文,我们可以使用以下简单的方法来解决:p1t.rcParams'font.sans-serif=,SimHei'#用来正常显示中文标签【示例】解决标签、标题中的中工问题importmatp1ot1ib.pypk)taspitdatas=1,2,3A5SqUareS=1,4,9,16,25p1t.ptot(datas,squares,1inewidth=5)#设置线条宽度# 设置中文乱码问题p1t.rcParams,font.sans-serif,=,SimHei,# 设置图标标题,并在坐标轴上添加标签p1t.ti*('标题设置',fontsize=24)p1t.x1abe1('x,fontsize=14)p1t.y1abe1('y轴)fontsize=14)p1t.show()标题设置绘制一元二次方程的曲线y=x2MatP1。Hib有很多函数用于绘制各种图形,其中P1ot函数用于曲线,需要将200个点的X坐标和Y坐标分别以序列的形式传入PIo1函数,然后调用ShoW函数显示绘制的图形。一元二次方程的曲线【示例】一元二次方程的曲线importmatp1ot1ib.pyp1otaspit#200个点的X坐标x=range(-100,100)# 生成y点的坐标y=i*2foriinx# 绘制一元二次曲线p1t.pbt(x,y)# 调用SaVefig将一元二次曲线保存为resu1tjpgp1t.savef1g('resu1t.jpg')#如果直接写成p1t.savefig('cos,)会生成cos.pngp1t.show()运行结果如下图:绘制正弦曲线和余弦曲线使用P1t函数绘制任何曲线的第一-步都是生成若干个坐标点(x,y),理论上坐标点是越多越好。本例取O到10之间IOO个等差数作为X的坐标,然后将这100个X坐标值一起传入Numpy的sin和COS函数,就会得到100个y坐标值,最后就可以使用p1ot函数绘制正弦曲线和余弦曲线。【示例】正弦曲线和余弦曲线importmatp1ot1ib.pyptotaspitimportnumpyasnp# 生成X的坐标(O-IO的100个等差数列)x=np.1inspace0,10,10)SinJ=np.sin(x)# 绘制正弦曲线p1t.pbt(x,sin_y)# 绘制余弦曲线cos_y=np.cos(x)p1t.pbt(x,cosj)p1t.show()运行结果如下图:上面的示例可以看到,调用两次p1ot函数,会将sin和cos曲线绘制到同一个二维坐标系中,如果想绘制到两张画布中,可以调用SUbP1Oto函数将画布分区。【示例】将画布分为区域,将图画到画布的指定耳域importmatpbt1ib.pypfotaspitimportnumpyasnp# 将画布分为区域,将图画到画布的指定区域x=np.1inspace(1,1,100)# 将画布分为2行2歹J,将图画到画布的1区域p1t.subpbt(2,2,1)p1t.pfot(x,np.sin(x)pit.SUbPbt(2,2,3)p1t.pfot(x,np.cos(x)p1t.showQ运行结果图:散点图使用scatter函数可以绘制随机点,该函数需要接收x坐标和y坐标的序列。【示例】SiI1函数的散点图importmatp1ot1ib.pyptotaspitimportnumpyasnp# 画散点图x=np.1inspace0,10,100)J0到10中100个等差数p1t.scatter(x,np.sin(x)p1t.show()运行结果图:卷Figure1x=5.39968y=-0.609238j÷1÷1+回三IEi1【示例】使用scatter画10中大小100中颜色的散点图importmatp1ot1ib.pyptotaspitimportnumpyas