【matplotlib基础】--刻度

matplotlib,基础,刻度 · 浏览次数 : 102

小编点评

** matplotlib 中的刻度** matplotlib 中的刻度是用于在绘图中表示数据大小的工具。它可以设置为坐标轴上的数字或标签,用于指示数据的大小或值。 **主要设置:** - **显示刻度:**通过设置 `ax.xaxis.set_major_locator()` 和 `ax.yaxis.set_major_locator()` 方法设置主次刻度的显示或隐藏。 - **刻度密度:**通过设置 `ax.xaxis.set_minor_locator()` 和 `ax.yaxis.set_minor_locator()` 方法设置次要刻度的间隔。 - **刻度颜色:**通过设置 `ax.ticklabels()` 方法设置刻度的颜色。 - **刻度大小:**通过设置 `ax.ticklabel_fontsize` 方法设置刻度的字体大小。 - **刻度旋转:**通过设置 `plt.xticks()` 方法设置刻度的旋转角度。 - **刻度格式:**可以使用 `plt.xticks()` 方法设置刻度的格式,例如使用 LaTeX 格式显示数字。 **示例:** ```python import matplotlib.pyplot as plt x = np.array(range(0, 100)) y = np.random.randint(100, 200, 100) # 设置主次刻度 ax.xaxis.set_major_locator(MultipleLocator(20)) ax.xaxis.set_minor_locator(MultipleLocator(2)) # 设置次要刻度 ax.yaxis.set_major_locator(MultipleLocator(50)) ax.yaxis.set_minor_locator(MultipleLocator(5)) # 设置刻度颜色 ax.ticklabels = 'color', 'red') # 设置刻度大小 ax.ticklabel_fontsize = 12 # 设置刻度格式 plt.xticks(labels=[0, np.pi / 6, np.pi / 4, np.pi/3, np.pi / 2], ticks=x) # 设置刻度旋转 plt.xticks(labels=[0, np.pi / 6, np.pi / 4, np.pi/3, np.pi / 2], ticks=x, rotation=45) plt.show() ``` **总结:** matplotlib 的刻度是用于数据可视化的重要工具,可以设置主次刻度、刻度密度、颜色、大小、角度以及格式。通过这些设置,我们可以确保刻度易于理解并与其他图形元素相协调。

正文

Matplotlib刻度是用于在绘图中表示数据大小的工具。

刻度是坐标轴上的数字或标签,用于指示数据的大小或值,
通常以整数或小数表示,具体取决于坐标轴的类型和限制。

1. 主次刻度

默认的绘制时,坐标轴只有默认的主要刻度,如下所示:

from matplotlib.ticker import MultipleLocator 

x = np.array(range(0, 100))
y = np.random.randint(100, 200, 100)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
#X轴的主要和次要刻度
ax.xaxis.set_major_locator(MultipleLocator(20))
ax.xaxis.set_minor_locator(MultipleLocator(2))

#Y轴的主要和次要刻度
ax.yaxis.set_major_locator(MultipleLocator(50))
ax.yaxis.set_minor_locator(MultipleLocator(10))

ax.plot(x, y)

image.png
上面的示例中,
设置了X轴的主要刻度间隔20,次要刻度间隔2,也就是每2个主要刻度之间有10个次要刻度
设置了Y轴的主要刻度间隔50,次要刻度间隔10,也就是每2个主要刻度之间有5个次要刻度

次要刻度就是上面图中主要刻度之间稍短点的线。

2. 刻度样式

刻度的样式非常灵活,常见的有以下几种设置。

2.1. 隐藏刻度

隐藏刻度,只保留图形,这在做某些示意图的时候可能会用到。

x = np.array(range(0, 100))
y = np.random.randint(100, 200, 100)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

#隐藏刻度
ax.xaxis.set_major_locator(plt.NullLocator())
ax.yaxis.set_major_locator(plt.NullLocator())

ax.plot(x, y, color='g')

image.png

2.2. 密度

密度是指刻度的间隔,如果图比较小,可以设置间隔大一些,反之则设置小一些。

from matplotlib.ticker import MultipleLocator 

x = np.array(range(0, 100))
y = np.random.randint(100, 200, 100)

rows, cols = 2, 2
grid = plt.GridSpec(rows, cols)

ax = plt.subplot(grid[0, 0])
ax.plot(x, y)
ax.xaxis.set_major_locator(MultipleLocator(20))
ax.yaxis.set_major_locator(MultipleLocator(50))


ax = plt.subplot(grid[1, :])
ax.plot(x, y)
ax.xaxis.set_major_locator(MultipleLocator(10))
ax.yaxis.set_major_locator(MultipleLocator(20))

image.png
上例中,根据图形的大小,我们设置了刻度的不同密度

2.3. 颜色,大小,旋转

为了突出某些刻度值,有时候会需要修改那些刻度值的颜色和大小。

x = np.array(range(0, 100))
y = np.random.randint(100, 200, 100)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.xaxis.set_major_locator(MultipleLocator(10))

obj = ax.get_xticklabels()[2]
obj.set_size(20)
obj.set_color("red")

ax.plot(x, y, color='g')

image.png
上面示例中,X轴刻度10放大并且改成了红色

刻度的旋转一般用在刻度内容比较长的情况,比如下面的示例:

x = np.array(
    [
        "2022-01-01",
        "2022-02-01",
        "2022-03-01",
        "2022-04-01",
        "2022-05-01",
        "2022-06-01",
        "2022-07-01",
        "2022-08-01",
        "2022-09-01",
        "2022-10-01",
    ]
)
y = np.random.randint(100, 200, 10)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

ax.plot(x, y, color="g")

image.png
由于X轴的刻度是日期,因为太长,所以会挤在一起,显示不清。
这时可以调整X轴刻度的角度,避免重合在一起。

x = np.array(
    [
        "2022-01-01",
        "2022-02-01",
        "2022-03-01",
        "2022-04-01",
        "2022-05-01",
        "2022-06-01",
        "2022-07-01",
        "2022-08-01",
        "2022-09-01",
        "2022-10-01",
    ]
)
y = np.random.randint(100, 200, 10)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
plt.xticks(rotation=45) # 旋转45度

ax.plot(x, y, color="g")

image.png

2.4. latex格式

Matplotlib的刻度还支持latex格式,可以显示一些特殊的字符,比如圆周率π
直接显示时:

x = np.array([0, np.pi / 6, np.pi / 4, np.pi/3, np.pi / 2])
x = np.round(x, 2)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
plt.xticks(labels=x, ticks=x)
ax.plot(x, y)

image.png
X轴的刻度显示实际的值。
调整为 latex 格式来显示:(调整 plt.xticks() 这个函数)

plt.xticks(labels=[
    "0", "$\pi/6$", "$\pi/4$", "$\pi/3$", "$\pi/2$"
], ticks=x)

image.png
X轴的刻度中显示圆周率π,更易于阅读和理解。

3. 总结回顾

与之前介绍的画布子图坐标轴相比,刻度是设置最多也是最复杂的一个容器。
刻度的主要作用是帮助数据可视化更加清晰和易于理解,基于此,本篇主要介绍了:

  1. 主次刻度
  2. 刻度样式,包括是否显示刻度,刻度的密度,颜色,大小,角度以及latex公式的支持。

与【matplotlib基础】--刻度相似的内容:

【matplotlib基础】--刻度

Matplotlib中刻度是用于在绘图中表示数据大小的工具。 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制。 1. 主次刻度 默认的绘制时,坐标轴只有默认的主要刻度,如下所示: from matplotlib.ticker import Mu

【matplotlib基础】--子图

使用Matplotlib对分析结果可视化时,比较各类分析结果是常见的场景。在这类场景之下,将多个分析结果绘制在一张图上,可以帮助用户方便地组合和分析多个数据集,提高数据可视化的效率和准确性。 本篇介绍Matplotlib绘制子图的常用方式和技巧。 1. 添加子图的方式 添加子图主要有两种方式,一种是

【matplotlib基础】--动画

matplotlib的动画一直是一个强大但使用频率不高的功能,究其原因,一方面展示动画需要一定的媒介,没有图形和文字展示方便;二来大家更关心的是分析结果的最终图表,图表的动态展示则没有那么重要。 不过,随着短视频的兴起,在短视频平台上展示动画变得非常容易,所以,我们发现有越来越多的数据分析动画(比如

【matplotlib基础】--画布

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。难点在于

【matplotlib基础】--坐标轴

Matplotlib的坐标轴是用于在绘图中表示数据的位置的工具。 坐标轴是图像中的水平和垂直线,它们通常表示为 x 轴和 y 轴。坐标轴的作用是帮助观察者了解图像中数据的位置和大小,通常标有数字或标签,以指示特定的值在图像中的位置。 1. 坐标轴范围 Matplotlib绘制图形时,会自动根据X,Y

【matplotlib基础】--图例

Matplotlib 中的图例是帮助观察者理解图像数据的重要工具。图例通常包含在图像中,用于解释不同的颜色、形状、标签和其他元素。 1. 主要参数 当不设置图例的参数时,默认的图例是这样的。 import numpy as np import matplotlib.pyplot as plt x =

【matplotlib基础】--文本标注

Matplotlib 文本和标注可以为数据和图形之间提供额外的信息,帮助观察者更好地理解数据和图形的含义。 文本用于在图形中添加注释或提供更详细的信息,以帮助观察者理解图形的含义。标注则是一种更加细粒度的文本信息,可以被用来为特定的数据点或区域提供更详细的信息。 本篇通过示例依次介绍文本和标注的常用

【matplotlib基础】--绘图配置

Matplotlib 提供了大量配置参数,这些参数可以但不限于让我们从整体上调整通过 Matplotlib 绘制的图形样式,这里面的参数还有很多是功能性的,和其他工具结合时需要用的配置。 通过plt.rcParams,可以查看所有的配置信息: import matplotlib.pyplot as

【matplotlib基础】--样式表

Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方。 不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,通过使用不同的样式表,可以整体改变绘制图形的风格,不用再调整一个个显示参数。 1. 样式表的使用 1.1. 所有内

【matplotlib基础】--手绘风格

Matplotlib 中有一个很有趣的手绘风格。如果不是特别严肃的分析报告,使用这个风格能给枯燥的数据分析图表带来一些活泼的感觉。 使用手绘风格非常简单,本篇主要手绘风格的效果以及如何配置中文的支持。 1. 中文支持 Matplotlib 的手绘风格默认是不支持中文的,中文在图形中会显示成方格子。如