plt绘图绘制主次刻度线

这里主要是介绍的坐标轴上的主次刻度的划分,这里需要单独引入ticker中的两个模块进行设置 MultipleLocator, FormatStrFormatter

  • set_major_locator() 设置主刻度
  • set_minor_locator() 设置次刻度
  • set_major_formatter() 设置主刻度格式
  • plt.NullLocator() 删除刻度显示
  • plt.NullFormatter() 删除文本格式
  • tick_params() 设置一些需要的参数的

次刻度只是范围的划定,并不显示对应的数值或字符,一般就不需要设置次刻度的格式

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, which='major', linestyle="--", color="lightgray", linewidth=0.75)     # x坐标轴的网格使用主刻度
ax.yaxis.grid(True, which='minor', linestyle="--", color="lightgray", linewidth=0.75) # y坐标轴的网格使用次刻度
plt.show()

plt绘图绘制主次刻度线_第1张图片

另外一种例子,更简洁:

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)

# ----------------------------
# 设置xy轴范围
plt.axis([-10, 10, -10, 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轴标签文本格式
# ----------------------------

# ----------------------------
# 设置x轴主要刻度线
xmajorLocator = MultipleLocator(5)            # 将x轴主刻度标签设置为,以5为间隔
xmajorFormatter = FormatStrFormatter('%.1f')  # 设置x轴标签文本的格式

ax.xaxis.set_major_locator(xmajorLocator)     # 设置x轴主刻度
ax.xaxis.set_major_formatter(xmajorFormatter) # 设置x轴标签文本格式
# ----------------------------

# ----------------------------
# 设置主次刻度参数
ax.minorticks_on()
ax.tick_params(axis="both", which="major", direction="out", width=1, length=5)
ax.tick_params(axis="both", which="minor", direction="out", width=1, length=3)
# ax.xaxis.set_minor_locator(MultipleLocator(0.4))
# ----------------------------

# ----------------------------
# 设置网格
plt.grid(True, which="major", linestyle="--", color="gray", linewidth=0.75)
plt.grid(True, which="minor", linestyle=":", color="lightgray", linewidth=0.75)
# ----------------------------

plt.show()

plt绘图绘制主次刻度线_第2张图片

你可能感兴趣的:(笔记,python,计算机视觉)