Matplotlib 参数及元素
linestyle或ls 线条风格
'-'
实线
':'
虚线
'–'
破折线
'None',''
什么都不画
'-.'
点划线
masker 标记形状
'o'
圆圈
'.'
点
'D'
菱形
's'
正方形
'h'
六边形1
'*'
星号
'H'
六边形2
'd'
小菱形
'_'
水平线
'v'
一角朝下的三角形
'8'
八边形
'<'
一角朝左的三角形
'p'
五边形
'>'
一角朝右的三角形
','
像素
'^'
一角朝上的三角形
'+'
加号
''
竖线
'None',''
无
'x’
X
color或c 颜色
'b'
蓝色
'g'
绿色
'r'
红色
'y'
黄色
'c'
青色
'k'
黑色
'm'
洋红色
'w'
白色
标题和x/y轴的标签
通过plt.title()或者ax.set_title()函数可以设置相应图标的标题。
通过plt.xlabel()/plt.ylabel()或者ax.set_xlabel()/ax.set_ylabel()可以设置对应坐标轴的标签。
注意:ax用来指代axes对象。
grid() 网格显示
参数说明:
b:设置是否打开网格
color:设置网格颜色
linestyle:设置网格线型
linewidth:设置网格线宽
legend() 图例显示
参数说明:
handles:添加到图例中的绘图对象(可省略)
labels:对应于handles对象顺序的label,可省略(此时需要在画图时通过label参数指定每个图形对象的名称)
ncol:图例的列数,可以通过该参数使得图例分列显示
loc:图例设置的位置
'best'
0
'upper right'
1
'upper left'
2
'lower left'
3
'lower right'
4
'right'
5
'center left'
6
'cevter right'
7
'lower center'
8
'upper center'
9
'center'
10
坐标轴
通过plt.axis([xmin,xmax,ymin,ymax])可以设置坐标轴的范围,其中xmin,xmax,ymin,ymax分别表示x轴左边界,x轴右边界,y轴下边界,y轴上边界。
通过plt.xlim(xmin,xmax)和plt.ylim(ymin,ymax)方法可以分别调整x轴和y轴的范围,使用该函数时可以传参[minval,maxval]来同时设置某轴的最小值和最大值,也可以分别通过xmin,xmax,ymin,ymax来单独设置某个轴的某个边界值。
locator_params() 坐标轴刻度的调整
通过locator_params()方法来调整坐标轴的刻度间距,该函数的声明为:
参数说明:
axis:用来选择要调整的坐标轴,该参数有三个值'both','x','y'
nbins:坐标轴划分的等份数
注释的添加
通过使用annotate()方法可以往图形上添加带箭头的注释,该函数的声明为:
参数说明:
s:注释字符串
xy:要注释的点
xytext:放置注释字符串的位置
arrowprops:设置在位置xy和xytext之间绘制的箭头的属性,参数类型为字典,其中常用的参数包括
width
箭身的宽度
headwidth
箭头的宽度
facecolor
箭头的颜色
通过使用text()方法可以往图形上只添加文字注释,该函数的声明为:
参数说明:
x,y:文字注释内容的x坐标和y坐标
s:文字注释的内容
fontfamily:文字字体类型,常用的包括'serif','sans-serif','cursive','fantasy','monospace'
fontstyle:字体样式,常用的包括'normal','italic','oblique'
fontsize/size:字体大小,可以采用数字
fontweight/weight:设置字体的粗细,可以使用0~1000范围内的数字来设置,数字越大字体越粗
注意:上述函数可以输出数学公式,使用方式和输出文本的用法一致,只需要设置s = r"mathexperssion"即可,其中mathexpression是包含在$$之间的字符串(常用的数学符号编写)。
多图显示
通过plt.subplot()方法可以将figure划分为多个子图,但每条subplot命令只会创建一个子图,该函数的常用使用形式为:
参数说明:
nrows:figure划分的行数
ncols:figure划分的列数
index:图案nrows行ncols列划分的块再按从左往右,从上往下的顺序排列的当前图的索引
通过plt.subplots()方法可以创建一个figure和一批子图,返回的形式为(figure, subplots),该方法的常用形式为:
参数说明:
nrows:figure划分的行数
ncols:figure划分的列数
在使用该方式时,我们可以通过二维索引来获取子图,例如axes[1,1]表示获取到的是第2行第2列的子图对象,然后利用该子图对象我们可以调用画图函数来进行图形绘制,当然也可以通过for循环来获取子图对象。
面向对象的方式
对于面向对象的方式,首先需要新建一个figure对象,然后可以利用add_subplot()函数新建坐标轴对象(该函数的参数和plt.subplot()类似),再调用该函数即可进行绘图,示例代码如下:
图片显示
matplotlib也可以用来展示图片,而且它可以向展示上述的绘制图形一样同时展示多张图片,通过plt.imshow(X)可以用来显示图片,其中X可以是通过PLI.Image.open()或cv2.imread()或matplotlib.image.imread()打开的图形数据,示例代码如下:
最后更新于