为数据可视化创建 Matplotlib 图例

Beginner

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

简介

在数据可视化中,图例可帮助查看者理解他们所看到的内容。Matplotlib 中的图例是描述图形元素的标签。本教程将展示如何为 Matplotlib 图形创建图例。

虚拟机使用提示

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

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

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

导入必要的库

首先,我们需要导入必要的库——NumPy 和 Matplotlib。NumPy 是一个用于处理数组的 Python 库,而 Matplotlib 是一个数据可视化库。

import matplotlib.pyplot as plt
import numpy as np

创建一个基本图表

要创建一个基本图表,我们需要定义 x 和 y 值,然后使用 plt.plot() 绘制它们。在这里,我们将绘制两个正弦波。

x = np.arange(0.0, 2.0, 0.02)
y1 = np.sin(2 * np.pi * x)
y2 = np.sin(4 * np.pi * x)

plt.plot(x, y1, label='sin(2pix)')
plt.plot(x, y2, label='sin(4pix)')

添加图例

要为图表添加图例,我们使用 plt.legend() 函数。我们可以将每条线的标签作为字符串列表传递给该函数的 labels 参数。

plt.legend(labels=['sin(2pix)', 'sin(4pix)'])

自定义图例

我们可以通过更改图例的位置、字体大小和其他参数来自定义它。要更改图例的位置,我们使用 loc 参数。我们还可以使用 fontsize 参数来更改字体大小。

plt.legend(labels=['sin(2pix)', 'sin(4pix)'], loc='lower right', fontsize='large')

为子图创建图例

在创建子图时,我们可以使用 fig.legend() 函数为所有子图创建一个图例。在这里,我们将创建两个子图,并在每个子图上绘制两条线。

fig, axs = plt.subplots(1, 2)

x = np.arange(0.0, 2.0, 0.02)
y1 = np.sin(2 * np.pi * x)
y2 = np.exp(-x)
l1, = axs[0].plot(x, y1)
l2, = axs[0].plot(x, y2, marker='o')

y3 = np.sin(4 * np.pi * x)
y4 = np.exp(-2 * x)
l3, = axs[1].plot(x, y3, color='tab:green')
l4, = axs[1].plot(x, y4, color='tab:red', marker='^')

fig.legend((l1, l2), ('Line 1', 'Line 2'), loc='upper left')
fig.legend((l3, l4), ('Line 3', 'Line 4'), loc='upper right')

将图例放置在坐标轴之外

有时,我们可能希望图例位于坐标轴之外。我们可以使用 loc 参数来指定图例在坐标轴之外的位置。

fig, axs = plt.subplots(1, 2, layout='constrained')

x = np.arange(0.0, 2.0, 0.02)
y1 = np.sin(2 * np.pi * x)
y2 = np.exp(-x)
l1, = axs[0].plot(x, y1)
l2, = axs[0].plot(x, y2, marker='o')

y3 = np.sin(4 * np.pi * x)
y4 = np.exp(-2 * x)
l3, = axs[1].plot(x, y3, color='tab:green')
l4, = axs[1].plot(x, y4, color='tab:red', marker='^')

fig.legend((l1, l2), ('Line 1', 'Line 2'), loc='upper left')
fig.legend((l3, l4), ('Line 3', 'Line 4'), loc='outside right upper')

总结

在本教程中,我们学习了如何为 Matplotlib 图形创建图例。我们已经了解了如何创建基本绘图、添加图例、自定义图例、为子图创建图例以及将图例放置在坐标轴之外。图例是数据可视化的一个重要方面,对于任何数据科学家或分析师来说,了解如何创建图例都是一项必不可少的技能。