珍娱客>科技>Python基础之matplotlib库(二)>正文

Python基础之matplotlib库(二)

历史2022-08-060 次阅读

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


今天我们来继续深入学习Python第三方库matplotlib库的有关知识。

一、图形对象(窗口对象)的操作

1.创建图形窗口

之前我们学习的画图都是在一个图形窗口里面完成的,并且都是默认的窗口,没有对窗进行操作,其实窗口有很多可操作的地方,其api如下:

gure('',figsize=(),dpi=120,facecolor='')

其中第一个字符串参数为窗口名称,figsize参数是一个元组,表示窗口的大小,dpi参数指窗口的分辨率,facecolor参数则是窗口的背景颜色

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

那我们怎么知道图像画在哪个窗口上?代码写在哪个figure下面,图像就画在哪个窗口下面,用已创建figure的名称重新创建figure时,默认为在已创建的figure上操作

2.创建图表名称

mp.title(title,fontsize=12)

title参数表示图表的名称,fontsize参数表示名称字符的大小

Python基础之matplotlib库(二)

运行结果如下:

Python基础之matplotlib库(二)

3.设置坐标轴的文本

mp.xlabel(x_label_str,fontsize=12)

mp.ylabel(y_label_str,fontsize=12)

其中第一个参数表示坐标轴的文本,第二个参数表示文本大小

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

4.设置刻度文本的大小

mp.tick_params(labelsize=8)

Python基础之matplotlib库(二)

运行结果如下:

Python基础之matplotlib库(二)

5.设置图表网格线

id(linestyle='')

参数linestyle表示网格线的形状

Python基础之matplotlib库(二)

运行结果如下:

Python基础之matplotlib库(二)

6.设置紧凑布局,把图表相关参数都显示在窗口中

mp.tight_layout()

二、子图

我们可以在不同的图像窗口中画不同的图,但有时还是觉得比较麻烦,比方我们想直观的比较两个图,最好是能放在一起,这时子图功能就比较有优势了,子图的意思是在一个窗口对象中画多个图形

一个窗口对象画多个子图,这里就会涉及到子图的排版,也就是布局问题

1.矩阵式布局

矩阵式布局就是行列标准的布局格式,其api如下:

bplot(rows,cols,num)

其中参数rows表示行、cols表示列,num表示画第几幅图

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

画文本的方法

mp.text(x,y,'',ha='center',va='center',size=36,alpha=0.5)

其中参数x、y表示文本的位置,字符串参数表示要写的文本,ha、va表示水平居中垂直居中,size参数表示文本的大小,alpha参数表示文本的透明度

Python基础之matplotlib库(二)

用for循环写九宫格

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

2.网格式布局

网格式布局支持单元格的合并

网格式布局子图需导入gridspec方法

#导入方法

import idspec as mg

#获取3x3的图像矩阵

gs=mg.GridSpec(3,3)

#合并第一行一二列,即合并第一第二幅图

bplot(gs[0,:2])

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

3.自由式布局

ex([0.03,0.03,0.94,0.94])

列表参数中第一个元素的意思是左下角点x的坐标,是一个比例,第二个元素是左下角点y的坐标,也是比例,第三个元素是图形的宽度,第四个元素的图形的高度

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

三、刻度定位器

#获取当前坐标系

ax=mp.gca()

#主刻度定位器

t_major_locator(ltipleLocator(1))

#次刻度定位器

t_minor_locator(ltipleLocator(0.1))

其中参数ltipleLocator的意思是主刻度每隔1一个刻度,次刻度每隔0.1一个刻度,主刻度会有文本显示,次刻度没有

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

Python刻度定位器还有很多参数

#空刻度定位器

NullLocator()

#等分定位器

MaxNLcoator(nbins=4)

#定点定位器

FixedLocator([3,6,9])

#自动定位器

AutoLocator()

接下来用for循环遍历,来测试各定位器

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

四、刻度网格线

前面我们学习过网格线id方法,不过那是在主刻度上显示的,现在我们要在所有刻度上加网格线,可以用id方法,其api参数如下:

id(which='',axis='',linewidth=1,linestyle='',color='',alpha=0.5)

其中参数which是指什么刻度,可以选填minor或major或both,axis参数可选x/y/both

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

五、半对数坐标

当y值的波动太大时,y轴的刻度又是等比例的,有时图看起来就会很诡异,这时我们可以使用半对数坐标

Python基础之matplotlib库(二)

其运行结果如下:

Python基础之matplotlib库(二)

好了,基本的一些绘图知识学完了,后面我们将开始一些常用图的绘制。

END