Matplotlib是一个功能强大的Python绘图库,广泛应用于数据可视化和科学研究领域。它提供了两种绘图方式:基于状态机的pyplot API和面向对象的API。在本文中,我们将重点介绍使用Matplotlib的面向对象API设置坐标轴的标签、刻度范围和刻度标签,以及添加标题和图例,显示网格的方法。
一、设置坐标轴的标签、刻度范围和刻度标签
1.1首先使用pyplot模块中的xlabel()设置x轴的标签,ylabel()设置y轴的标签
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
然后分别设置语法。
xlabel()语法:xlabel(xlabel, fontdict=None, labelpad=None,**kwargs)
ylabel()语法:ylabel(ylabel, fontdict=None, labelpad=None,**kwargs)
xlabel,ylabel:表示x轴和y轴标签的文本
fontdict:表示控制标签文本样式的字典,默认值是None
labelpad:表示标签与x轴轴脊间的距离,默认值是None
假设现在有一个包含正弦曲线和余弦曲线的图表,该图表中设置x轴和y轴的标签
示例代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
1.2 设置刻度范围和刻度标签
1.2.1 首先使用 pyplot模块中的xlim()和ylim()函数分别设置x轴和y轴的刻度范围
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
分别输入后续语法
xlim()语法:xlim(left=None, right=None, emit=True, auto=False, *,xmin=None, xmax=None)
ylim()语法:ylim(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轴刻度的最大值
示例代码:设置x轴的刻度范围
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
1.2.2 首先使用xticks()和yticks()函数分别设置x轴和y轴的刻度标签
#设置x轴的刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
分别输入语法
xticks()语法:xticks(ticks, labels=None, *, minor=False, **kwargs)
yticks()语法:yticks(ticks, labels=None, *, minor=False, **kwargs)
示例代码:设置x轴的刻度标签
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
#设置x轴的刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
二、添加标题和图例
2.1首先使用 pyplot模块中的title()函数添加标题
#添加标题
plt.title("正弦曲线和余弦曲线")
分别输入语法
title()语法:title(label, fontdict=None, loc=’‘center, pad=None, *,**kwargs)
label:表示标题的文本
fontdict:表示标题样式的字典
loc:表示标题的对齐样式,包括’left‘,’right‘,’center‘,默认值是‘center
pad:表示标题距离图表顶部的距离,默认为None
示例代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
#设置x轴的刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
#添加标题
plt.title("正弦曲线和余弦曲线")
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
2.2 添加图例
首先使用pyplot 模块中legend()函数添加图例
#添加图例
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
legend()语法:legend(handles,labels,loc,bbox_to_anchor,ncol,title,shadow,fancybox,*args, **kwargs)
handles:表示由图形标识构成的列表
labels:表示由图列项构成的列表
loc:用于控制图例在图表中的位置
bbox_to_anchor:用于控制图例的布局
ncol:表示图例的列数,默认值为1
title:表示图例的标题,默认值为None
shadow:表示是否在图例后面显示阴影,默认值为None
fancybox:表示是否为图例设置圆角边框,默认值为None
示例代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
#设置x轴的刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
#添加标题
plt.title("正弦曲线和余弦曲线")
#添加图例
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
三、显示网格
3.1 首先使用pyplot 模块中的grid()函数显示网格
#显示网格
plt.grid(b=True,axis='y',linewidth=0.3)
grid()语法:grid(b=None, which='major', axis='both', **kwargs)
b:表示是否显示网格,若提供其他关键字参数,则b参数设为True
which:表示显示网格的类型,支持'major'、'minor'、'both'这三种类型,默认为major
axis;表示显示哪个方向的网格,该参数支持'both'、'x'和'y'这三个选项,默认为'both'
linewidth或lw:表示网格线的宽度
示例代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = '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)
plt.plot(x,y1,x,y2)
#设置x轴的刻度范围
plt.xlim(x.min()*1.5,x.max()*1.5)
#设置x轴的刻度标签
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
#添加标题
plt.title("正弦曲线和余弦曲线")
#添加图例
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
#显示网格
plt.grid(b=True,axis='y',linewidth=0.3)
#设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()
运行结果:
本文介绍了使用Matplotlib库的面向对象API设置坐标轴的标签、刻度范围和刻度标签,添加标题和图例,显示网格的方法。通过这些功能,我们可以更好地展示数据,使图形更具可读性和美观性。希望本文能够帮助读者更好地使用Matplotlib库进行数据可视化。