python库matlabplot绘图详解

由于“小小怪”是做推荐系统的,对于图像的处理这一块是必须要了解的,在这里跟大家分享一下python简单的绘图工具

一:matplotlib库文件安装

acaconda安装方式

安装了anaconda的小伙伴可以使用控制台直接安装,安装win+R调出控制台输入cmd,在控制台输入conda install matplotlib进行安装,当然了在pycharm下面有一个Terminal,点开它,在其中直接输入conda install matplotlib也是可以的,正常情况下,第二种方式比较方便,因为我们编程总需要一个方便的IDE吧,这里方便的IDE我推荐使用pycharm。

pip安装方式

安装了anaconda的小伙伴,也可以使用pip进行安装,命令当然也是很简单的,pip install matplotlib,没有使用anaconda的小伙伴,也不需要特意去下载anaconda,当我们进行IDE安装的时候,会默认帮我们安装上pip,以后我们可以只使用pip进行安装,但是小小怪还是建议大家,直接使用anaconda,因为如果小伙伴们在以后需要用到爬虫的相关库的时候,pip的安装方式会带来很多依赖不足的问题,需要我们自己手动去网上下载依赖的包,这样会浪费很多的时间。

安装库文件时,可能会遇到的问题

比如虽然安装成功了,但是运行的时候会抛出这样的错误:import error : no module name tkinter,这是因为我们使用的matplotlib依赖其他的库,也不需要慌张,我们只需要使用上面的方式,将tkinter这个库也下载好就可以了。

二:使用matplotlib画简单图形

比如现在我有两组数据,x = [1,2,3,4,5…],y = [0.1,0.2,0.3,…],加入x代表编号,而y代表对应于x的数据,现在我们想要绘制折线图来观察我们想看到的结果,当然了,不仅仅是折线图,使用matplotlib可以绘制所有excel绘制的图形。

步骤如下:

第一步:导入库文件

import matplotlib
import matplotlib.pyplot as plt
import os

正常情况下,我其实还会导入os模块,这个模块是系统自带的,os模块主要是用来做文件的相关操作,小伙伴们可以理解为,它可以改变,查找电脑里面任何一个文件的路径,这里使用os模块,当然是为了改变程序的路径,因为如果小伙伴们想将做出来的图形生成jpg或者png等文件的话,最好还是换个路径,不然生成的图像会默认保存在当前文件夹。

第二步:导入数据

注意一点,matplotlib只支持列表形式的数据,比如我们传入的x,y它其实都是一个列表。

第三步:使用pyplot中的plot函数作图

对于导包中的as可以理解为是整个库文件的缩写,也就是说我们后面用到的plt代表matplotlib.pyplot,因此小伙伴们在变量命名的时候千万不能出现plt这样的变量。以上面的x,y举例画折线图,当然了,如果想要画不同的图,只需要改变plt后面的函数名就可以了,plt.plot(x, y, label=u'图像描述', linewidth=3, color='r', marker='o', markerfacecolor='blue', markersize=6)解释一下这里的参数,label是在生成的图像里面对生成该条图形的表述,注意不是整个图形,linewidth代表是折线的宽度,color代表的是折线的颜色,当然还有很多其他的颜色,小伙伴们可以自行上网查看,marker代表每个点的形状,当然也有很多种,小伙伴自行上网查看,markerfacecolor代表点的颜色,同上,markersize代表点的大小。到这里基本可以满足大家对作图的需求了,当我们想要在一张图里面继续画其他图线时,plt.plot(x1, y1, label=u'图像描述', linewidth=3, color='r', marker='o', markerfacecolor='blue', markersize=6)即可,聪明的小伙伴可能已经看出来了,当我们处理大数据的时候,会涉及到很多有规律的数据,这个时候我们讲上面的代码封装之后,使用循环,那么得到的图像就不是简单的一个了。

第四步:生成以及保存图像

生成图像的代码很简单plt.show(),保存图像的代码也很简单,plt.savefig('文件名.jpg')

简单介绍一下os库

在作图这一块,os用不到太多的函数,因此这里只介绍我们需要用到的功能,改变当前文件路径,将我们生成的图像保存到我们需要保存的地方去,os.chdir('这里填写保存文件的绝对路径'),其他还有很多有趣的功能,希望大家自己去摸索吧,很多功能还是非常有趣的。

图像的内容补充

对于简简单单的作图,图像难免会显得内容太少,那么我们需要给图像增加点内容,比如x轴,y轴的坐标描述,以及整个图像的标题,对于x轴和y轴的坐标描述代码分别为:plt.xlabel(u'描述'),plt.ylabel(u'描述'),设置标题的代码为:plt.title(u'描述')

解决中文乱码问题

这个是非常关键的哦,即使百度你也找不到的,当然是小小怪自己摸索出来的,正常情况下,按照以上的步骤的话,做出来的图像中文是乱码的状态,那么怎么解决呢?首先我们需要加入这行代码,chinfo = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/msyh.ttc'),解释一下,这行代码表示我们调用电脑中自带的中文字体,小伙伴们可以到这个路径下面去查看一下,当然了,要设置文件夹格式显示隐藏文件。然后我们需要做的就是在有涉及到中文的地方加上如下代码,举个例子:plt.xlabel(u'描述', fontproperties=chinfo)这时我们的x轴的中文描述就可以正常显示了,但是还要提醒一点,对于每一条图线的描述代码是不一样的,plt.legend(loc='best', prop=chinfo),解释一下这行代码,我们在之前用plot作图的时候,里面的label描述,需要添加这行代码才能显示出来,其中loc='best'这个代码在最恰当的位置给出描述,而prop=chinfo就是为了解决中文的乱码问题。

循环作图,图像不重叠问题

这个也是重点,可以说,百度是没有的,这是小小怪自己试出来的,虽然很简单,首先引出问题:当我们使用大数据需要作很多的图的时候,我们理想当然的去选取用循环去生成图像并且保存,可是我们发现一个非常严重的问题,当我们用封装好的函数去做循环时,生成的图像全部重叠在了一起,比如第二图应该只有第二张图的图像,可是第二张图不但有第二张图,还包含了第一张图的图像,后面生成的图像都是这种情况,这个时候,我们只需要在我们封装的函数最后加上一段代码plt.close()就可以完美的解决循环作图问题

最后祝大家在学习python的路上披荆斩棘


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1990858822@qq.com

文章标题:python库matlabplot绘图详解

本文作者:XIAOK Z

发布时间:2019-08-31, 14:31:27

最后更新:2019-08-31, 16:54:09

原始链接:http://yoursite.com/2019/08/31/python库matlabplot绘图详解/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏