本系列内容所用Python版本为anaconda,直接浏览器搜索下载安装即可!
今天我们开始学习Python第三方库matplotlib的基础知识。
一、matplotlib库的概述
matplotlib库是Python的一个绘图库,使用它可以轻松的绘画出版质量的图形
二、基本绘图
matplotlib绘图库的核心方法是plot方法,该方法一般形式如下:
mp.plot(x,y),其中x和y是序列,并且元素一一对应,该方法参数还非常多,后续内容将围绕展开,调用完plot方法后,还需调用mp.show()方法才能显示图像,该方法是阻塞方法,即不关闭显示的图像窗口后续代码将停止运行,所以一般最后才调用show函数
1.简单函数图像
绘制一条函数图像
其显示结果如下:
2.水平线和垂直线
水平线的api:mp.hlines(xval,xmin,xmax)
垂直线的api:mp.vlines(vval,ymin,ymax)
其中value参数表示横和竖的水平,min和max参数表示线的起止位置
画一条y为7.5,x为1到3的水平线,x为3,y为6到9的垂直线
其显示结果如下:
我们可以看到,hlines、vlines函数都是复数形式,说明可以就调用一次同时画多条水平或垂直线
方法的第一个列表参数为线的水平垂直程度,后两个列表参数一一对应构成线的起止位置
其显示结果如下:
3.画正弦函数
画函数图像的底层逻辑是找出函数上一一对应的x、y,通过连接每一个(x,y)而得到函数图像,画正弦函数时,x序列可以通过linspace方法线性拆分-π到π,y序列则通过sin函数代入每一个x得到
其显示结果如下:
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参数表示线的透明度
测试一下
sinx/2的线型为--,这里有笔误
其结果如下:
5.设置坐标轴的范围
mp.xlim(xlimt_min,xlimt_max)
mp.ylim(ylimt_min,ylimt_max)
其中第一个参数为x/y轴的范围最小值,第二个参数为x/y轴的范围最大值
给x轴y轴设定范围
其运行结果如下:
6.设置坐标轴的刻度
mp.xticks(x_val_list,x_text_list)
mp.yticks(x_val_list,x_text_list)
第一个参数表示坐标轴刻度的真实值,第二个参数则表示值的表示形式
x_val_list是值列表,x_text_list是值得显示形式列表
其显示结果如下:
latex语法
上图中我们发现-π/2并不是我们常见的分数形式,显示还是不直观,特别是以后可能还会用到其它比较复杂的符号,输入法根本打印不出来,这个就需要我们用到latex字符串语法
例如我们对上面代码进行改进
其运行结果如下:
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时代表不要该坐标轴
其运行结果如下:
8.图例
图例是在函数坐标系适当位置标识出各个函数图像,其api一般形式如下:
mp.legend(loc='')
其中参数loc表示图例显示在哪里,默认为最佳位置,也可以设置为字符串'best'或'right top'等等,也可以直接写数字0、1、2等等,0也是最佳位置的意思
但上述方法仅仅只是显示图例的方法,我们在画函数线的时候需要给该图像一个标签最终才能显示出来,形如下面
mp.plot(x,y......label='y=sin(x)')
其运行结果如下:
9.特殊点
有时需要在函数图像上对特殊点进行标记,这就需要用到特殊点的方法
mp.scatter(xarray,yarray,marker='',s='',edgecolor='',facecolor='',zorder=3)
xarray、yarray参数表示特殊点的坐标,可以是数组,marker参数表示特殊点的形状常用形状有'o'表示圆形、's'表示方形、'D'表示菱形等等,s参数表示特殊点的大小,edgecolor参数表示特殊点的边缘色,facecolor表示特殊点的填充色,zorder参数则表示特殊点所在图层编号,越大图层则越靠上
其运行结果如下:
10.备注
为在某条函数上的点添加备注,指明相关信息
mp.annotate('',xy=(x,y),xytext=(x,y),fontzie=14,arrowprops=dict())
其中第一个字符串参数表示备注的文本,xy参数表示备注目标点的坐标,xytext参数则表示备注文本的坐标,arrowprops参数是一个字典,有两个元素,一是箭头形状,二是箭连接方式
其运行结果如下:
好了,至此我们已经学习了matplotlib库简单的绘图方法,后续我们将继续学习更加高级的操作。
END
,