创建自定义的 Matplotlib 可视化

Beginner

This tutorial is from open-source community. Access the source code

简介

在本教程中,我们将学习如何使用 Matplotlib 创建和自定义图表。Matplotlib 是一个 Python 库,它提供了广泛的工具,用于在 Python 中创建静态、动画和交互式可视化。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入 Matplotlib 和 NumPy 库

第一步是导入库。我们将使用 Matplotlib 的pyplot模块和numpy库。

import matplotlib.pyplot as plt
import numpy as np

创建图形和子图

下一步是创建一个图形和子图。我们将使用subplots函数创建一个包含两个并排子图的图形。

fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(7, 4))

设置纵横比并绘制数据

现在,我们将使用set_aspect函数将第一个子图的纵横比设置为 1,并使用plot函数绘制一些数据。

ax0.set_aspect(1)
ax0.plot(np.arange(10))

自定义轴标签

要自定义轴标签,我们可以使用set_xlabelset_ylabel函数。我们还可以使用“\n”字符添加换行符。

ax0.set_xlabel('this is a xlabel\n(with newlines!)')
ax0.set_ylabel('this is vertical\ntest', multialignment='center')

向绘图中添加文本

我们可以使用text函数向绘图中添加文本。我们可以指定文本的位置、旋转角度、水平和垂直对齐方式以及多行对齐方式。

ax0.text(2, 7, 'this is\nyet another test',
         rotation=45,
         horizontalalignment='center',
         verticalalignment='top',
         multialignment='center')

添加网格线

要向绘图中添加网格线,我们可以使用grid函数。

ax0.grid()

向第二个子图添加多行文本

在第二个子图中,我们将使用text函数添加多行文本。我们可以指定文本的位置、大小、垂直和水平对齐方式以及文本框(bbox)。

ax1.text(0.29, 0.4, "Mat\nTTp\n123", size=18,
         va="baseline", ha="right", multialignment="left",
         bbox=dict(fc="none"))

ax1.text(0.34, 0.4, "Mag\nTTT\n123", size=18,
         va="baseline", ha="left", multialignment="left",
         bbox=dict(fc="none"))

ax1.text(0.95, 0.4, "Mag\nTTT$^{A^A}$\n123", size=18,
         va="baseline", ha="right", multialignment="left",
         bbox=dict(fc="none"))

自定义 X 轴标签

要自定义 X 轴标签,我们可以使用set_xticks函数。我们可以指定刻度的位置和标签。

ax1.set_xticks([0.2, 0.4, 0.6, 0.8, 1.],
               labels=["Jan\n2009", "Feb\n2009", "Mar\n2009", "Apr\n2009",
                       "May\n2009"])

向第二个子图添加一条水平线和标题

要向第二个子图添加一条水平线,我们可以使用axhline函数。我们还可以使用set_title函数为子图添加一个标题。

ax1.axhline(0.4)
ax1.set_title("test line spacing for multiline text")

调整子图位置并显示绘图

最后,我们可以使用subplots_adjust函数调整子图的位置,并使用show函数显示绘图。

fig.subplots_adjust(bottom=0.25, top=0.75)
plt.show()

总结

在本教程中,我们学习了如何使用 Matplotlib 创建和自定义绘图。我们涵盖了如何创建图形和子图、绘制数据、自定义轴标签、向绘图添加文本、添加网格线、自定义 x 轴标签、向绘图添加水平线和标题以及调整子图位置。Matplotlib 提供了广泛的工具,用于在 Python 中创建静态、动画和交互式可视化,使其成为一个强大的数据可视化库。