设置坐标轴的标签
设置x轴的标签
matplotlib中可以直接使用pyplot模块的xlabel()函数设置x轴的标签,xlabel()函数的语法格式如下:
xlabel(xlabel, fontbict=None, labelpad=None, **kwargs)
该函数各参数含义如下:
xlabel: 表示x轴标签的文本
fontdict: 表示控制标签文本样式的字典
labelepad: 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
此外,Axes对象使用set_xlabel()方法也可以设置x轴的标签。
设置y轴的标签
matplotlib中可以直接使用pyplot模块的ylabel()函数设置x轴的标签,ylabel()函数的语法格式如下:
ylabel(ylabel, fontbict=None, labelpad=None, **kwargs)
该函数的ylabel参数表示y轴标签的文本,其余参数与xlabel()函数的参数的含义相同,此外,Axes对象使用set_ylabel()方法也可以设置y轴的标签。
现有一个包含正弦曲线和余弦曲线的图表,该图中设置x轴和y轴的标签,用面向对象方法实现,具体代码如下:
import numpy as np
import matplotlib.pyplot as plt
# 0.设置中文
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 创建画布
fig = plt.figure()
# 在画布上添加绘图区域
ax = fig.add_subplot(111)
#准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
ax.plot(x, y1, x, y2)
#设置x轴和y轴标签
ax.set_xlabel("x轴")
ax.set_ylabel("y轴")
#展示图表
plt.show()
设置刻度范围和刻度标签
设置刻度范围
使用pyplot模块的xlim()和ylim()函数分别可以设置或获取x轴和y轴的刻度范围。
xlim()函数的语法格式如下:
xlim(left=None, right=None, emit=True, auto=False, *, xmin=None, xmax=None)
该函数常用参数的含义如下。
·left:表示x轴刻度取值区间的左位数。·right:表示x轴刻度取值区间的右位数。
·emit:表示是否通知限制变化的观察者,默认为 True。·auto:表示是否允许自动缩放x轴,默认为True.
·xmin:表示x轴刻度的最小值。·xmax:表示x轴刻度的最大值。
此外,Axes 对象可以使用 set_xlim) 和 set_ylim0 方法分别设置x轴和y轴的刻度范围。
设置刻度标签
使用pyplot模块的xticks()和yticks()函数分别可以设置或获取x轴和y轴的刻度线位置。
xticks()函数的语法格式如下:
xticks(ticks=None, labels=None, **kwargs)
该函数的 ticks参数表示刻度显示的位置列表,它还可以设为空列表,以此禁用x轴的刻度;labels 表示指定位置刻度的标签列表。
此外,Axes对象可以使用set_ xticks0或 set_yticks0方法分别设置x轴或轴的刻度线位置,使用set_xticklabels() 或 set_yticklabels() 方法分别设置x轴或y轴的刻度标签。
我们在上一个正余弦曲线图基础上设置坐标轴的刻度范围和刻度标签,增加如下:
#设置x轴的刻度范围和刻度标签
ax.set_xlim(x.min() * 1.5, x.max() * 1.5)
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
tips:字符串前面加r,意味着该字符串将被视为原始字符串,所有转义字符都被忽略
添加标题和图例
添加标题
matplotlib 中可以直接使用pyplot模块的 title() 函数添加图表标题,title()函数的语法格式如下所示:
title(label, fontdict=None, loc='center', pad=None, **kwargs)
该函数常用参数的含义如下。
· label:表示标题的文本。
·fontdict:表示控制标题文本样式的字典。
·loc:表示标题的对齐样式,包括 left'、'right和'center '三种取值,默认取值为'center' 即居中显示标题。
· pad:表示标题与图表顶部的距离,默认为 None.
此外,Axes对象还可以使用 set_title()方法添加图表的标题。
#添加标题
ax.set_title("正弦曲线和余弦曲线)
添加图例
使用pyplot模块的legend()函数添加图例,legend()函数的语法格式如下:
legend(handles, labels, loc, bbox_to_anchor, ncol, title, shadow,
fancybox, *args, **kwargs)
(1)handles 和 labels 参数
handles参数表示由图形标识构成的列表,labels 参数表示由图例项构成的列表。
(2)loc 参数
lac参数用于精细调整图例在整个绘图区域上的位置,该参数支持字符串和数值俩种形式的取值。
(3)bbox_to_anchor参数
用于精细调整图例在整个绘图区域上的位置(x:0-1,y:0-1)
(4)ncol 参数
ncol 参数表示图例的列数,默认值为1。
(5 )title 参数
title 参数表示图例的标题,默认值为 None。
(6)shadow 参数
shadow参数控制是否在图例后面显示阴影,默认值为 Noneo
(7)fancybox 参数
fancybox参数控制是否为图例设置圆角边框,默认值为 None。
#添加图例
ax.legend(ax.plot(x, y1, x, y2), ['正弦', '余弦'], shadow=True, fancybox=True)
显示网格
显示指定样式的表格
使用pyplot模块的grid()函数添加图例,grid()函数的语法格式如下:
grid(b=None, which='major', axis='both', **kwargs)
该函数常用参数的含义如下。
·b:表示是否显示网格。若提供其他关键字参数,则b参数设为 True.
·which:表示显示网格的类型,支持 major、minor、both 这3种类型,默认为 major.
·axis:表示显示哪个方向的网格,该参数支持both、x和y这3个选项,默认为both。
· linewidth或Iw:表示网格线的宽度。
此外,还可以使用Axes 对象的 gridO 方法显示网格。需要说明的是,坐标轴若没有刻度,就无法显示网格。
#显示网格
ax.grid( axis='y', linewidth=0.3)