创建自定义的 Matplotlib 可视化

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本教程中,我们将学习如何使用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中创建静态、动画和交互式可视化,使其成为一个强大的数据可视化库。