matplotlib 添加艺术家不在图例上显示标签

matplotlib add artist not showing labels on legend

这是我的第一个问题,可能非常简单,但是我尝试修复任何错误并查看更多信息但没有成功,我是使用 matplotlib 编程图形的新手,有人可以帮我吗?提前谢谢你

该程序的目标是绘制一个圆圈和一个标签,但标签没有出现:

import matplotlib.pyplot as plt
circle1 = plt.Circle((0, 0), 0.2, color='r',label='Men')

fig, ax = plt.subplots()
ax.add_artist(circle1)
circle1 = plt.Circle((0, 0), 2, color='r',label='Men')
plt.legend(loc='best')
plt.show()

根据您的代码,您只绘制了第一个圆(半径为 0.2)。你永远不会调用第二个圆圈,所以它不会出现。不确定你在这里做什么。但是,BigBen 是正确的,只需使用 ax.add_patch(circle1) 代替,它将与标签一起显示。通过这个小改动,您的情节将如下所示:

您还需要设置 x 轴和 y 轴范围以查看整个圆。下面的代码将允许您完整地查看带有不同标签的两个圆圈。

import matplotlib.pyplot as plt
circle1 = plt.Circle((0, 0), 0.2, color='r',label='Small Red',zorder=2)
circle2 = plt.Circle((0, 0), 2, color='b',label='Big Blue',zorder=1)
fig, ax = plt.subplots()
ax.add_patch(circle1)
ax.add_patch(circle2)
plt.legend(loc='best')
ax.set_xlim([-3,3])
ax.set_ylim([-3,3])
plt.show()

您的情节将如下所示:

zorder 参数将决定哪个对象显示在另一个对象的前面。它们将按降序从前到后出现。