本系列内容所用Python版本为anaconda,直接浏览器搜索下载安装即可!
今天我们来继续深入学习Python第三方库matplotlib库的有关知识。
一、图形对象(窗口对象)的操作
1.创建图形窗口
之前我们学习的画图都是在一个图形窗口里面完成的,并且都是默认的窗口,没有对窗进行操作,其实窗口有很多可操作的地方,其api如下:
mp.figure('',figsize=(),dpi=120,facecolor='')
其中第一个字符串参数为窗口名称,figsize参数是一个元组,表示窗口的大小,dpi参数指窗口的分辨率,facecolor参数则是窗口的背景颜色
其运行结果如下:
那我们怎么知道图像画在哪个窗口上?代码写在哪个figure下面,图像就画在哪个窗口下面,用已创建figure的名称重新创建figure时,默认为在已创建的figure上操作
2.创建图表名称
mp.title(title,fontsize=12)
title参数表示图表的名称,fontsize参数表示名称字符的大小
运行结果如下:
3.设置坐标轴的文本
mp.xlabel(x_label_str,fontsize=12)
mp.ylabel(y_label_str,fontsize=12)
其中第一个参数表示坐标轴的文本,第二个参数表示文本大小
其运行结果如下:
4.设置刻度文本的大小
mp.tick_params(labelsize=8)
运行结果如下:
5.设置图表网格线
mp.grid(linestyle='')
参数linestyle表示网格线的形状
运行结果如下:
6.设置紧凑布局,把图表相关参数都显示在窗口中
mp.tight_layout()
二、子图
我们可以在不同的图像窗口中画不同的图,但有时还是觉得比较麻烦,比方我们想直观的比较两个图,最好是能放在一起,这时子图功能就比较有优势了,子图的意思是在一个窗口对象中画多个图形
一个窗口对象画多个子图,这里就会涉及到子图的排版,也就是布局问题
1.矩阵式布局
矩阵式布局就是行列标准的布局格式,其api如下:
mp.subplot(rows,cols,num)
其中参数rows表示行、cols表示列,num表示画第几幅图
其运行结果如下:
画文本的方法
mp.text(x,y,'',ha='center',va='center',size=36,alpha=0.5)
其中参数x、y表示文本的位置,字符串参数表示要写的文本,ha、va表示水平居中垂直居中,size参数表示文本的大小,alpha参数表示文本的透明度
用for循环写九宫格
其运行结果如下:
2.网格式布局
网格式布局支持单元格的合并
网格式布局子图需导入gridspec方法
#导入方法
import matplotlib.gridspec as mg
#获取3x3的图像矩阵
gs=mg.GridSpec(3,3)
#合并第一行一二列,即合并第一第二幅图
mp.subplot(gs[0,:2])
其运行结果如下:
其运行结果如下:
3.自由式布局
mp.axex([0.03,0.03,0.94,0.94])
列表参数中第一个元素的意思是左下角点x的坐标,是一个比例,第二个元素是左下角点y的坐标,也是比例,第三个元素是图形的宽度,第四个元素的图形的高度
其运行结果如下:
三、刻度定位器
#获取当前坐标系
ax=mp.gca()
#主刻度定位器
ax.xaxis.set_major_locator(mp.MultipleLocator(1))
#次刻度定位器
ax.xaxis.set_minor_locator(mp.MultipleLocator(0.1))
其中参数mp.MultipleLocator的意思是主刻度每隔1一个刻度,次刻度每隔0.1一个刻度,主刻度会有文本显示,次刻度没有
其运行结果如下:
Python刻度定位器还有很多参数
#空刻度定位器
NullLocator()
#等分定位器
MaxNLcoator(nbins=4)
#定点定位器
FixedLocator([3,6,9])
#自动定位器
AutoLocator()
接下来用for循环遍历,来测试各定位器
其运行结果如下:
四、刻度网格线
前面我们学习过网格线mp.grid方法,不过那是在主刻度上显示的,现在我们要在所有刻度上加网格线,可以用ax.grid方法,其api参数如下:
ax.grid(which='',axis='',linewidth=1,linestyle='',color='',alpha=0.5)
其中参数which是指什么刻度,可以选填minor或major或both,axis参数可选x/y/both
其运行结果如下:
五、半对数坐标
当y值的波动太大时,y轴的刻度又是等比例的,有时图看起来就会很诡异,这时我们可以使用半对数坐标
其运行结果如下:
好了,基本的一些绘图知识学完了,后面我们将开始一些常用图的绘制。
END
页面更新:2024-05-09
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号