Вам нужно добавить его к осям.Circle
является подклассом Artist
, а axes
имеет метод add_artist
.
Вот пример этого:
import matplotlib.pyplot as plt
circle1 = plt.Circle((0, 0), 0.2, color='r')
circle2 = plt.Circle((0.5, 0.5), 0.2, color='blue')
circle3 = plt.Circle((1, 1), 0.2, color='g', clip_on=False)
fig, ax = plt.subplots() # note we must use plt.subplots, not plt.subplot
# (or if you have an existing figure)
# fig = plt.gcf()
# ax = fig.gca()
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles.png')
Это приводит кследующий рисунок:
![](https://i.stack.imgur.com/6Wq0M.png)
Первый круг находится в начале координат, но по умолчанию clip_on
равен True
, поэтому круг обрезается, когда он выходит за пределы axes
.Третий (зеленый) круг показывает, что происходит, когда вы не обрезаете Artist
.Он выходит за пределы осей (но не за пределы фигуры, т. Е. Размер фигуры не автоматически настраивается для построения всех ваших художников).
Единицы для x, y и радиуса соответствуютединицы данных по умолчанию.В этом случае я ничего не рисовал на своих осях (fig.gca()
возвращает текущие оси), и, так как ограничения никогда не устанавливались, по умолчанию их значения составляют от 0 до 1.
Вот продолжение примера, показывающее, как важны единицы:
circle1 = plt.Circle((0, 0), 2, color='r')
# now make a circle with no fill, which is good for hi-lighting key results
circle2 = plt.Circle((5, 5), 0.5, color='b', fill=False)
circle3 = plt.Circle((10, 10), 2, color='g', clip_on=False)
ax = plt.gca()
ax.cla() # clear things for fresh plot
# change default range so that new circles will work
ax.set_xlim((0, 10))
ax.set_ylim((0, 10))
# some data
ax.plot(range(11), 'o', color='black')
# key data point that we are encircling
ax.plot((5), (5), 'o', color='y')
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles2.png')
, что приводит к:
![](https://i.stack.imgur.com/DAssu.png)
Вы можете увидеть, как я устанавливаю заполнение2-й кружок к False
, что полезно для обобщения ключевых результатов (как моя желтая точка данных).