【问题标题】:matplotlib add artist not showing labels on legendmatplotlib 添加艺术家未在图例上显示标签
【发布时间】:2021-05-14 15:25:02
【问题描述】:

这是我在这里的第一个问题,可能非常简单,但是我尝试修复任何错误并查看更多信息但没有成功,我是使用 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()

【问题讨论】:

  • 也许使用ax.add_patch(circle1)
  • 谢谢它真的很有用,感谢 BigBen 并非常感谢 WVJoe 的周到解释
  • 完成了,真的很有帮助,谢谢。看来我不能投票了

标签: matplotlib legend subplot


【解决方案1】:

根据您的代码,您只绘制了第一个圆(半径为 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 参数将决定哪个对象显示在另一个对象的前面。它们将按降序从前到后出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多