本系列内容所用Python版本为anaconda,直接浏览器搜索下载安装即可!


今天我们开始学习Python第三方库matplotlib的基础知识。

一、matplotlib库的概述

matplotlib库是Python的一个绘图库,使用它可以轻松的绘画出版质量的图形

二、基本绘图

matplotlib绘图库的核心方法是plot方法,该方法一般形式如下:

mp.plot(x,y),其中x和y是序列,并且元素一一对应,该方法参数还非常多,后续内容将围绕展开,调用完plot方法后,还需调用mp.show()方法才能显示图像,该方法是阻塞方法,即不关闭显示的图像窗口后续代码将停止运行,所以一般最后才调用show函数

1.简单函数图像

绘制一条函数图像

python如何调用matplotlib(Python基础之matplotlib库)(1)

其显示结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(2)

2.水平线和垂直线

水平线的api:mp.hlines(xval,xmin,xmax)

垂直线的api:mp.vlines(vval,ymin,ymax)

其中value参数表示横和竖的水平,min和max参数表示线的起止位置

python如何调用matplotlib(Python基础之matplotlib库)(3)

画一条y为7.5,x为1到3的水平线,x为3,y为6到9的垂直线

其显示结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(4)

我们可以看到,hlines、vlines函数都是复数形式,说明可以就调用一次同时画多条水平或垂直线

python如何调用matplotlib(Python基础之matplotlib库)(5)

方法的第一个列表参数为线的水平垂直程度,后两个列表参数一一对应构成线的起止位置

其显示结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(6)

3.画正弦函数

画函数图像的底层逻辑是找出函数上一一对应的x、y,通过连接每一个(x,y)而得到函数图像,画正弦函数时,x序列可以通过linspace方法线性拆分-π到π,y序列则通过sin函数代入每一个x得到

python如何调用matplotlib(Python基础之matplotlib库)(7)

其显示结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(8)

4.设置线型、线宽、线的颜色

mp.plot(xarray,yarray,linestyle='',linewidth=1,color='',alpha=0.5)

其中linestyle参数表示线的形状,一般用到的有‘-’、‘--’、‘-.’、‘:’等,linewidth参数表示线的宽度,是数值,0.5表示是标准宽度的0.5倍,color参数表示线的颜色,可以是颜色的英文单词,可以是首字母,可以是rgb数值,一般用到的有‘lightgray浅灰色’、‘orangered橙红色’、‘dodgerblue蓝色’、‘limegreen绿色’,alpha参数表示线的透明度

测试一下

python如何调用matplotlib(Python基础之matplotlib库)(9)

sinx/2的线型为--,这里有笔误

其结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(10)

5.设置坐标轴的范围

mp.xlim(xlimt_min,xlimt_max)

mp.ylim(ylimt_min,ylimt_max)

其中第一个参数为x/y轴的范围最小值,第二个参数为x/y轴的范围最大值

python如何调用matplotlib(Python基础之matplotlib库)(11)

给x轴y轴设定范围

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(12)

6.设置坐标轴的刻度

mp.xticks(x_val_list,x_text_list)

mp.yticks(x_val_list,x_text_list)

第一个参数表示坐标轴刻度的真实值,第二个参数则表示值的表示形式

python如何调用matplotlib(Python基础之matplotlib库)(13)

x_val_list是值列表,x_text_list是值得显示形式列表

其显示结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(14)

latex语法

上图中我们发现-π/2并不是我们常见的分数形式,显示还是不直观,特别是以后可能还会用到其它比较复杂的符号,输入法根本打印不出来,这个就需要我们用到latex字符串语法

例如我们对上面代码进行改进

python如何调用matplotlib(Python基础之matplotlib库)(15)

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(16)

latex语法总是以两个$符号为界限,字符串前面的r是为了转义字符串里面的反斜杠,\pi是符号π的意思,\frac是分数的意思,后面两个中括号第一个填分子、第二个填分母,还有很多,大家可以去网上搜索学习

7.设置坐标轴的位置

上述的图像其实有四条轴,left左轴、right右轴、top上轴、bottm下轴,并且x和y轴并不在中间,这时我们为了函数图像的直观,需要对坐标轴进行操作,一系列api如下:

ax=mp.gca()

该方法获取当前的坐标轴字典,并赋值给变量ax

axis=ax.spines['坐标轴名']

该方法获取单个坐标轴

axis.set_position((type,val))

该方法设置坐标轴的位置,参数为2个元素的元组

axis.set_color(color)

该方法改变坐标轴的颜色,参数为none时代表不要该坐标轴

python如何调用matplotlib(Python基础之matplotlib库)(17)

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(18)

8.图例

图例是在函数坐标系适当位置标识出各个函数图像,其api一般形式如下:

mp.legend(loc='')

其中参数loc表示图例显示在哪里,默认为最佳位置,也可以设置为字符串'best'或'right top'等等,也可以直接写数字0、1、2等等,0也是最佳位置的意思

但上述方法仅仅只是显示图例的方法,我们在画函数线的时候需要给该图像一个标签最终才能显示出来,形如下面

mp.plot(x,y......label='y=sin(x)')

python如何调用matplotlib(Python基础之matplotlib库)(19)

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(20)

9.特殊点

有时需要在函数图像上对特殊点进行标记,这就需要用到特殊点的方法

mp.scatter(xarray,yarray,marker='',s='',edgecolor='',facecolor='',zorder=3)

xarray、yarray参数表示特殊点的坐标,可以是数组,marker参数表示特殊点的形状常用形状有'o'表示圆形、's'表示方形、'D'表示菱形等等,s参数表示特殊点的大小,edgecolor参数表示特殊点的边缘色,facecolor表示特殊点的填充色,zorder参数则表示特殊点所在图层编号,越大图层则越靠上

python如何调用matplotlib(Python基础之matplotlib库)(21)

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(22)

10.备注

为在某条函数上的点添加备注,指明相关信息

mp.annotate('',xy=(x,y),xytext=(x,y),fontzie=14,arrowprops=dict())

其中第一个字符串参数表示备注的文本,xy参数表示备注目标点的坐标,xytext参数则表示备注文本的坐标,arrowprops参数是一个字典,有两个元素,一是箭头形状,二是箭连接方式

python如何调用matplotlib(Python基础之matplotlib库)(23)

其运行结果如下:

python如何调用matplotlib(Python基础之matplotlib库)(24)

好了,至此我们已经学习了matplotlib库简单的绘图方法,后续我们将继续学习更加高级的操作。

END

,