如何在 Matplotlib 中获取图中所有图例?

matplotlibpythondata visualization

要获取 matplotlib 中图中所有图例,我们可以使用 get_children() 方法获取轴的所有属性,然后迭代所有属性。如果某项是图例的实例,则获取图例文本。

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 使用 numpy 创建 x 个数据点。

  • 创建一个图形和一组子图。

  • 使用 plot() 方法绘制 sin(x)cos(x),并使用不同的标签和颜色。

  • 获取轴的子项并获取图例的文本。

  • 要显示图形,请使用 show() 方法。

示例

import numpy as np
from matplotlib import pyplot as plt
import matplotlib

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-10, 10, 100)
fig, ax = plt.subplots()

ax.plot(np.sin(x), color='red', lw=7, label="y=sin(x)")
ax.plot(np.cos(x), color='orange', lw=7, label="y=cos(x)")

plt.legend(loc='upper right')

for item in ax.get_children():
   if isinstance(item, matplotlib.legend.Legend):
      print(item.texts)

plt.show()

输出


相关文章