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

标签 matplotlib legend subplot

这是我的第一个问题,一个可能非常简单,但是我尝试修复任何错误并查看更多信息,但没有成功,我是使用 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) 代替,它将与标签一起显示。经过这个微小的更改,您的绘图将如下所示:

Plot 1

您还需要设置 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()

你的情节将如下所示:

Plot 2

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

关于matplotlib 添加艺术家不在图例上显示标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66145391/

相关文章:

python - 如何在 imsave() (Agg 后端)中设置 PNG 的压缩参数?

python - seaborn 中的白盒图? (覆盖层不透明)

python - Matplotlib。将子图与 Bbox 对齐

MatLab:可选打开图例

r - 用两个图例更改 ggplot 中的两个图例标题

r - 将左两行图例标题与expression()对齐

python - 如何绘制具有可缩放半径的圆?

matlab - 具有不同颜色图的子图 matlab

python - 如何在Python中将子图图形绘制并保存为新的类方法?

matlab - matlab 图中的子图标签