Matplotlib 中的 PGF 字体定制

PythonPythonBeginner
立即练习

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

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

简介

Matplotlib 是一个数据可视化库,它允许你在 Python 中创建各种可视化效果。创建可视化效果的一个重要方面是为你的文本选择合适的字体。在本教程中,我们将学习如何在 Matplotlib 中使用 PGF 字体。

虚拟机使用提示

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

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

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

导入必要的库

我们将从导入本教程所需的库开始。我们将使用 matplotlib.pyplot 来创建可视化效果。

import matplotlib.pyplot as plt

设置字体族

我们将使用 font.family 参数把字体族设置为“serif”(衬线字体)。此外,我们会将 font.serif 参数设置为空列表,以使用默认的 LaTeX 衬线字体。

plt.rcParams.update({
    "font.family": "serif",
    "font.serif": [],
})

设置手写字体

我们将使用 font.cursive 参数来设置手写字体。在这个例子中,我们将使用“Comic Neue”和“Comic Sans MS”。

plt.rcParams.update({
    "font.cursive": ["Comic Neue", "Comic Sans MS"],
})

创建图表

接下来,我们将使用 ax.plot() 函数创建一个简单的折线图。

fig, ax = plt.subplots(figsize=(4.5, 2.5))

ax.plot(range(5))

向图表添加文本

我们将使用 ax.text() 函数向图表添加文本。我们会在图表的四个不同位置添加文本,每个位置使用不同的字体族:衬线字体、等宽字体、无衬线字体和手写字体。

ax.text(0.5, 3., "serif")
ax.text(0.5, 2., "monospace", family="monospace")
ax.text(2.5, 2., "sans-serif", family="DejaVu Sans")
ax.text(2.5, 1., "comic", family="cursive")

设置 x 轴标签

我们将使用 ax.set_xlabel() 函数来设置 x 轴标签。我们将以希腊字母 mu 为例。

ax.set_xlabel("µ is not $\\mu$")

保存图表

最后,我们将使用 fig.savefig() 函数将图表保存为 PDF 和 PNG 文件。

fig.tight_layout(pad=.5)

fig.savefig("pgf_fonts.pdf")
fig.savefig("pgf_fonts.png")

总结

在本教程中,我们学习了如何在 Matplotlib 中使用 PGF 字体。我们设置了字体族、手写字体,创建了图表,添加了文本,设置了 x 轴标签,并保存了图表。这些技巧可用于自定义你在 Matplotlib 中可视化的外观。