📜  plt 更改图例坐标 - Python (1)

📅  最后修改于: 2023-12-03 15:18:36.562000             🧑  作者: Mango

plt 更改图例坐标 - Python

在 matplotlib 库中,我们可以使用 plt.legend 函数来添加图例到图表中。

我们可以使用 loc 参数来指定图例的位置,该参数接受以下字符串值:

  • 'best'(默认值):自动选择最佳位置。
  • 'upper right':在图表的右上角。
  • 'upper left':在图表的左上角。
  • 'lower left':在图表的左下角。
  • 'lower right':在图表的右下角。
  • 'right':在图表的右侧中间。
  • 'center left':在图表的左侧中间。
  • 'center right':在图表的右侧中间。
  • 'lower center':在图表的底部中间。
  • 'upper center':在图表的顶部中间。
  • (0.0, 1.0):指定坐标点作为图例的绝对坐标。
  • 0:移除图例。

如果选择了绝对坐标,则坐标点的值表示 X 和 Y 坐标的偏移量,同时使用 0 和 1 之间的小数值归一化。

下面是一些示例代码,展示如何将图例放置在不同的位置:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3], label="line 1")
plt.plot([3, 2, 1], label="line 2")
plt.legend(loc='best')
plt.show()

plt.plot([1, 2, 3], label="line 1")
plt.plot([3, 2, 1], label="line 2")
plt.legend(loc='upper right')
plt.show()

plt.plot([1, 2, 3], label="line 1")
plt.plot([3, 2, 1], label="line 2")
plt.legend(loc=(0.0, 1.0))
plt.show()

如果默认的图例位置不满足我们的需要,我们可以通过调整 loc 参数来更改位置。但是,有时候我们可能需要更进一步地调整图例的位置。

在这种情况下,我们可以使用 plt.gca 函数来获取当前的坐标轴(Axis)对象,然后使用该对象的 set_position 方法来更改图例的位置。

下面是示例代码,展示如何将图例放置在指定的位置:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3], label="line 1")
plt.plot([3, 2, 1], label="line 2")
plt.legend()

# 获取当前的坐标轴对象
ax = plt.gca()

# 将图例放置在坐标轴的右下侧
ax.legend(loc='lower right', bbox_to_anchor=(1.0, 0.0))

# 缩小图表留下足够的空间用于显示图例
plt.subplots_adjust(right=0.8)

plt.show()

在上面的代码中,我们首先使用 plt.legend 函数添加了一个默认的图例。然后,我们使用 plt.gca 函数获取当前的坐标轴对象。接下来,我们使用该对象的 set_position 方法来将图例放置在坐标轴的右下侧。最后,我们使用 plt.subplots_adjust 函数来缩小图表的宽度,以便为图例留下足够的空间。

总之,通过改变 loc 参数或 plt.gca 和 set_position 方法,我们可以非常灵活地更改 matplotlib 图表中图例的位置。