Matplotlib 图例

2024年07月14日 Matplotlib 图例 极客笔记

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() 函数的 facecoloredgecolor 参数可以分别控制图例的背景色和边框颜色。

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/

展开阅读全文