这里主要是介绍的坐标轴上的主次刻度的划分,这里需要单独引入ticker中的两个模块进行设置 MultipleLocator, FormatStrFormatter
- set_major_locator() 设置主刻度
- set_minor_locator() 设置次刻度
- set_major_formatter() 设置主刻度格式
- plt.NullLocator() 删除刻度显示
- plt.NullFormatter() 删除文本格式
次刻度只是范围的划定,并不显示对应的数值或字符,一般就不需要设置次刻度的格式
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
# 数据
x = np.linspace(-10, 10 * np.pi)
y1 = np.sin(x)*10
# 绘图
fig, ax = plt.subplots(figsize=(4,3))
ax.plot(x, y1)
# ----------------------------
# 设置y轴范围
ax.set_ylim(ymin=-10, ymax=10)
# 设置y轴主要刻度线
ymajorLocator = MultipleLocator(5) # 将y轴主刻度标签设置为,以5为间隔
ymajorFormatter = FormatStrFormatter('%.1f') # 设置y轴标签文本的格式
ax.yaxis.set_major_locator(ymajorLocator) # 设置y轴主刻度
ax.yaxis.set_major_formatter(ymajorFormatter) # 设置y轴标签文本格式
# 设置y轴次要刻度线
yminorLocator = MultipleLocator(1) # 将此y轴次刻度标签设置为,以1为间隔
ax.yaxis.set_minor_locator(yminorLocator) # 设置y轴次刻度
# ----------------------------
# ----------------------------
# 设置x轴范围
ax.set_xlim(xmin=-10, xmax=10)
# 设置x轴主要刻度线
xmajorLocator = MultipleLocator(5) # 将x轴主刻度标签设置为,以5为间隔
xmajorFormatter = FormatStrFormatter('%.1f') # 设置x轴标签文本的格式
ax.xaxis.set_major_locator(xmajorLocator) # 设置x轴主刻度
ax.xaxis.set_major_formatter(xmajorFormatter) # 设置x轴标签文本格式
# 设置x轴次要刻度线
xminorLocator = MultipleLocator(1) # 将此x轴次刻度标签设置为,以1为间隔
ax.xaxis.set_minor_locator(xminorLocator) # 设置x轴次刻度
# ----------------------------
ax.xaxis.grid(True, linestyle="--",which='major') # x坐标轴的网格使用主刻度
ax.yaxis.grid(True, linestyle="--",which='minor') # y坐标轴的网格使用次刻度
plt.show()