返回

将图例置于外部:释放图表区域并保持可读性

python

图表图例:如何放置在外部

序言

当在一个图形中绘制多个图表时,图例(显示每个曲线或系列的名称)有时可能会占用宝贵的绘图空间。特别是当有多个曲线需要绘制时,图例可能会变得非常庞大。本文将介绍如何将图例放置在图表区域外部,从而释放图表区域,同时保持图例的可见性和可读性。

将图例框保持在图表区域外部

要将图例框放在图表区域外部,可以使用 matplotlib 库中 legend 函数的 'Location' 参数。此参数允许你指定图例的位置,可选值包括:

  • 'best': 自动选择最佳位置
  • 'upper right': 右上角
  • 'upper left': 左上角
  • 'lower left': 左下角
  • 'lower right': 右下角
  • 'right': 右侧
  • 'center left': 居中靠左
  • 'center right': 居中靠右
  • 'lower center': 底部居中
  • 'upper center': 顶部居中
  • 'outside': 图表框外部

通常,将图例放置在图表区域外部的最佳位置是 'outside'。此选项会在图表框外创建一个单独的区域来显示图例,而不会影响图表区域的尺寸或比例。

# 导入必要的库
import matplotlib.pyplot as plt

# 创建一个包含 20 个图表的图形
fig, axes = plt.subplots(2, 10, figsize=(20, 10))

# 为每个图表添加一条曲线
for i in range(20):
    axes[i // 10, i % 10].plot(range(10), range(10))

# 将图例放置在图表区域的右侧外部
plt.legend(bbox_to_anchor=(1, 1), loc='outside')

plt.show()

减小图例框内文本的字体大小

默认情况下,图例中的文本使用默认字体大小。如果图例中有大量文本,这可能会使图例难以阅读。要减小图例中文本的字体大小,可以使用 legend 函数的 'FontSize' 参数。此参数允许你设置图例中文本的字体大小,单位为点(pt)。

# 导入必要的库
import matplotlib.pyplot as plt

# 创建一个包含 20 个图表的图形
fig, axes = plt.subplots(2, 10, figsize=(20, 10))

# 为每个图表添加一条曲线
for i in range(20):
    axes[i // 10, i % 10].plot(range(10), range(10))

# 将图例放置在图表区域的右侧外部
plt.legend(bbox_to_anchor=(1, 1), loc='outside')

# 设置图例中文本的字体大小
plt.legend(fontsize=8)

plt.show()

结论

通过将图例放置在图表区域外部并减小图例中文本的字体大小,你可以释放图表区域,同时保持图例的可见性和可读性。这对于包含大量曲线的图形特别有用。

常见问题解答

1. 如何自动选择图例的最佳位置?

使用 'best' 作为 'Location' 参数的值。

2. 如何将图例放在图表上方或下方?

使用 'upper center''lower center' 作为 'Location' 参数的值。

3. 如何更改图例框的颜色或边框样式?

使用 'frameon''facecolor' 参数。

4. 如何添加标题到图例框?

使用 'title' 参数。

5. 如何创建水平而不是垂直的图例?

使用 'orientation' 参数并将其设置为 'horizontal'