2024年07月14日 Matplotlib 图例 极客笔记
Matplotlib 是一个强大的 Python 画图库,可以用来创建各种类型的图表,包括折线图、散点图、柱状图等。在创建图表时,图例是一个非常重要的部分,它用来说明图表中每条数据线的含义,让观看者能够更清晰地理解图表的内容。在本文中,我们将详细介绍如何使用 Matplotlib 添加图例并对图例进行定制。
首先,让我们创建一个简单的折线图,并添加图例来解释图表中的数据。
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建图表
plt.figure()
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# 添加图例
plt.legend()
plt.show()
运行上面的代码,你会得到如下图所示的折线图,其中包含了两条数据线和相应的图例:
在上面的代码中,我们首先生成了一组 x 坐标和两组 y 坐标作为数据。然后使用 plt.plot()
函数绘制了这两组数据的折线图,并在绘制时通过 label
参数为每条数据线命名,这样在添加图例时就能显示相应的标签。最后,调用 plt.legend()
函数添加图例。
除了简单地添加默认样式的图例外,Matplotlib 还提供了丰富的选项来定制图例的外观和位置。
通过 plt.legend()
函数的 loc
参数可以控制图例的位置,常用的参数值包括:
'upper right'
:图例显示在右上角'upper left'
:图例显示在左上角'lower right'
:图例显示在右下角'lower left'
:图例显示在左下角'center'
:图例显示在中心位置plt.legend(loc='upper right')
可以通过 plt.legend()
函数的 frameon
参数来控制图例是否显示边框,以及边框的样式。
plt.legend(frameon=False)
通过 plt.legend()
函数的 facecolor
和 edgecolor
参数可以分别控制图例的背景色和边框颜色。
plt.legend(facecolor='lightgray', edgecolor='black')
当图例包含的条目较多时,可以通过将图例分成多列来使其更加紧凑。
plt.legend(ncol=2)
有时候,图例需要包含一个标题来说明各个数据线的意义。可以通过 plt.legend(title)
函数来添加图例标题。
plt.legend(title='Legend')
除了文字标签之外,图例还可以显示一些符号来表示数据线的样式。可以通过 plt.legend()
函数的 handler_map
参数来实现。
plt.plot(x, y1, label='sin(x)', linestyle='--')
plt.plot(x, y2, label='cos(x)', linestyle=':')
plt.legend(handler_map={plt.Line2D: plt.Line2D(marker='s')})
使用上面的代码,图例会以方形符号显示每条数据线,这在图例较长或包含多条数据线时会有所帮助。
有时候,我们可能需要对图例的文本进行加粗或者改变颜色等操作。可以通过传递一个字典给 plt.legend()
函数的 labelcolor
参数来实现。
plt.legend(labelcolor={'sin(x)': 'red', 'cos(x)': 'blue'})
在本文中,我们介绍了如何在 Matplotlib 中添加图例,并对图例进行调整和定制。通过掌握这些技巧,我们可以更好地展示图表中的数据内容,使得观众更容易理解图表。
本文链接:http://so.lmcjl.com/news/8431/