在学习为图表添加辅助元素的定制前,小伙伴们首先需要认识图表有哪些组件,以下这张图可以帮助小伙伴认识有哪些辅助元素
在图中可以看到有许多圆圈,一个圆圈对应一个组件,圆圈下面加粗字体是所圈内容的组件名称,组件名称下面是它的用法,需要注意的是这个用法对应的是面向对象,面向函数的用法图中没有涉及,这两个用法相似,在下面的实例中这两个用法都有涉及
坐标轴的标签
在绘制好图表后,有时候会为图表添加坐标轴的标签来明确x和y轴的意义,由于x轴和y轴标签用法几乎一样,下面就x轴为例来介绍坐标轴的标签(如果是y轴,就将x改y)
面向对象语法:
Axes.set_xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs)
参数说明:
xlabel:表示x轴标签的文本
fontdict:表示控制标签文本样式的字典,默认值是None
labelpad:表示标签与x轴轴脊间的距离,默认值是None
面向函数语法:
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs)
参数说明:
xlabel:表示x轴标签的文本
fontdict:表示控制标签文本样式的字典
labelpad:表示标签与x轴轴脊间的距离
对这个组件来说,这两个用法的区别是这两个的调用方式不同,面向对象是Axes.set_xlabel(),面向函数是matplotlib.pyplot.xlabel(),参数用法一致
面向对象
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)
# 绘制图表
ax.plot(x,y1,x,y2)
# 添加辅助元素的定制
# 设置坐标轴标签
ax.set_xlabel('x轴') # x轴
ax.set_ylabel('y轴') # y轴
plt.show()
面向函数
import matplotlib.pyplot as plt
import numpy as np
# 显示中文
plt.rcParams['font.sans-serif'] =['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
# 绘制图表
plt.plot(x,y1,x,y2)
# 设置坐标轴标签
plt.xlabel('x轴')
plt.ylabel('y轴')
# 展示图表
plt.show()
结果:左图为添加坐标轴标签,右图没有添加坐标轴标签


刻度范围和刻度标签
当我们根据数据绘制图表时,坐标轴显示的刻度范围和刻度都与数据的分布有着直接的联系
注意:
1.若绘图时没有指定任何数据,也就是说只创建一个绘图区域,
该区域中没有任何内容,则x轴和y轴的刻度范围默认为0.0~1.0,
刻度标签为[0.0,0.2,0.4,0.6,0.8,1.0];
2.若绘图时指定了x轴和y轴的数据。刻度范围和刻度标签会随着数据的变化而变化,
其中坐标轴的刻度范围是由数据中的最大值的最小值决定的
面向对象的语法
刻度范围语法:Axes.set_xlim(left=None, right=None, *, emit=True, auto=False, xmin=None, xmax=None))
参数说明:
left:表示x轴刻度取值区间的左位数
right:表示x轴刻度取值区间的右位数
emit:表示是否通知限制变化的观察者默认为True
auto:表示是否允许自动缩放x轴,默认为True
刻度位置语法:
Axes.set_xticks(ticks, labels=None, *, minor=False, **kwargs)
ticks:表示显示自定义刻度的列表,该参数可以设置空列表,以此禁用x轴的刻度
labels:表示显示为ticks参数设置过的刻度添加标签
刻度标签语法:
Axes.set_xticklabels(labels, *, minor=False, fontdict=None, **kwargs)
labels:为Axes.set_xticks()设置过的ticks刻度显示添加标签
fontdict:自定义设置标签样式的字典
面向函数语法
刻度范围语法:
matplotlib.pyplot.xlim(left=None, right=None, *, emit=True, auto=False, xmin=None, xmax=None)
参数说明:
left:表示x轴刻度取值区间的左位数
right:表示x轴刻度取值区间的右位数
emit:表示是否通知限制变化的观察者默认为True
auto:表示是否允许自动缩放x轴,默认为True
刻度标签语法:
matplotlib.pyplot.xticks(ticks=None, labels=None, *, minor=False, **kwargs)
参数说明:
ticks:表示显示刻度位置的列表,该参数可以设置空列表,以此禁用x轴的刻度
labels:表示对ticks位置过刻度添加标签的列表
Axes.set_xticks()和Axes.set_xticklabels()都可以添加刻度标签,但Axes.set_xticklabels()更常用,因为它可以自定义设置标签的样式
面向对象
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)
# 绘制图表
ax.plot(x, y1, x, y2)
# 添加图表辅助元素的定制
# 添加坐标轴标签
ax.set_xlabel('x轴')
ax.set_ylabel('y轴')
# 设置刻度范围和刻度标签
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]) # 刻度位置
ax.set_xticklabels([r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$']) # 刻度标签
# 展示图表
plt.show()
面向函数
import matplotlib.pyplot as plt
import numpy as np
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
# 绘制图表
plt.plot(x, y1, x, y2)
# 添加图表辅助元素的定制
# 设置坐标轴标签
plt.xlabel('x轴')
plt.ylabel('y轴')
# 设置x轴的刻度范围和刻度标签
# 用面向函数
plt.xlim(x.min() * 1.5, x.max() * 1.5) # 刻度范围
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.show()
结果:左图设置了刻度范围和刻度标签,右图没有设置刻度范围和刻度标签



最低0.47元/天 解锁文章
3699

被折叠的 条评论
为什么被折叠?



