手动添加Python Matplotlib图例项
Matplotlib是一个绘图库,可以用Python进行数据可视化。在matplotlib中,图例用于标识每个数据系列的含义。默认情况下,matplotlib会在图例中自动添加每个图像的标签。但是,有时候需要手动添加图例项,以便更好地展示数据。
在这篇文章中,我们将探讨如何使用Python Matplotlib手动添加图例项。
导入Matplotlib并生成数据
让我们首先导入Matplotlib库,并使用numpy生成一些数据。下面是代码:
import numpy as np
from matplotlib import pyplot as plt
# 生成一些数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制数据
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
在上面的代码中,我们首先导入了numpy和matplotlib库。然后,我们使用numpy的linspace()
函数生成100个从0到10的均匀间隔数值,并应用两个函数,将其存储在y1
和y2
中。在最后两行代码中,我们绘制了这两个函数并添加了标签。
如上图所示,我们已经成功地绘制了这两个函数。
添加图例项
接下来,我们将介绍如何手动添加图例项。我们将使用Matplotlib的legend()
函数生成图例项。下面是代码:
# 添加图例项
plt.legend()
# 展示图像
plt.show()
legend()
函数默认从绘制的线条自动生成图例项。在上面的代码中,我们只需调用legend()
函数即可。
让我们运行这段代码,看看Matplotlib将如何自动生成图例。
如上图所示,Matplotlib已自动生成图例,将标签分别与每个数据系列对应。
但有时候我们需要添加其他标签。下面是代码:
# 添加图例项
plt.legend(['Sine', 'Cosine'])
# 展示图像
plt.show()
在上面的代码中,我们手动添加了两个标签:Sine
和Cosine
。legend()
函数接受一个标签列表作为输入。legend()
函数将标签列表中的每个标签与相应的数据系列进行匹配,并生成图例。
让我们运行这段代码,看看Matplotlib将如何处理自定义标签。
如上图所示,我们已经成功地添加了自定义标签。
地址位置和展示方式
当我们手动添加图例项时,我们还可以选择图例的位置和展示方式。下面是代码:
# 添加图例项并将其放在顶部中心
plt.legend(['Sine', 'Cosine'], loc='upper center')
# 展示图像
plt.show()
在上面的代码中,我们指定了图例的位置为'upper center'
。loc
参数可接受以下位置的输入值:
- ‘best’:自动查找最佳位置
- ‘upper right’:右上角
- ‘upper left’:左上角
- ‘lower left’:左下角
- ‘lower right’:右下角
- ‘right’:右侧中心
- ‘center left’:左侧中心
- ‘center right’:右侧中心
- ‘center’:图像中心
- ‘upper center’:顶部中心
- ‘lower center’:底部中心
让我们运行这段代码,看看图例将如何放置在我们指定的位置。
如上图所示,我们已经成功地将图例项放置在顶部中心。
除了设置位置之外,我们还可以选择图例的展示方式。下面是代码:
# 添加图例项并将其放在顶部中心,并以4列方式展示图例
plt.legend(['Sine', 'Cosine'], loc='upper center', ncol=4)
# 展示图像
plt.show()
在上面的代码中,我们将ncol
参数设置为4,这将使图例以4列的方式展示。
让我们运行这段代码,看看图例将如何在4列中展示。
如上图所示,我们已经成功地将图例展示在4列中。
自定义图例
有时候,我们需要自定义图例项,例如图例项背景颜色、字体大小和样式等。下面是代码:
# 导入自定义图例需要的库
from matplotlib.patches import Patch
# 自定义图例项
custom_legend = [
Patch(facecolor='blue', label='Sine curve'),
Patch(facecolor='orange', label='Cosine curve')
]
# 添加自定义图例项
plt.legend(handles=custom_legend)
# 展示图像
plt.show()
在上面的代码中,我们首先导入了Patch
库,以便定义自定义图例项。然后,我们使用Patch
函数自定义两个图例项,区分由蓝色曲线表示的Sine曲线和由橙色曲线表示的Cosine曲线。最后,我们使用handles
参数将自定义图例项添加到图例中。
让我们运行这段代码,看看自定义的图例项将如何展示。
如上图所示,我们已经成功地添加了自定义图例项。
结论
在这篇文章中,我们学习了如何使用Python Matplotlib手动添加图例项。我们首先生成了一些数据,然后使用Matplotlib的legend()
函数创建了自动和手动的图例。我们还讨论了如何调整图例的位置和展示方式,并展示了如何自定义图例项,以便更好地展示数据。希望这篇文章对你有所帮助。