Você precisa adicioná-lo aos eixos. A Circle
é uma subclasse de an Artist
e an axes
possui um add_artist
método
Aqui está um exemplo de como fazer isso:
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')
Isso resulta na seguinte figura:
O primeiro círculo está na origem, mas por padrão clip_on
está True
, então o círculo é cortado sempre que se estende além do axes
. O terceiro círculo (verde) mostra o que acontece quando você não recorta o Artist
. Ela se estende além dos eixos (mas não além da figura, ou seja, o tamanho da figura não é ajustado automaticamente para plotar todos os seus artistas).
As unidades para x, ye raio correspondem às unidades de dados por padrão. Nesse caso, eu não plotei nada nos meus eixos ( fig.gca()
retorna os eixos atuais) e, como os limites nunca foram definidos, eles assumem o padrão de x e y de 0 a 1.
Aqui está uma continuação do exemplo, mostrando como as unidades são importantes:
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')
o que resulta em:
Você pode ver como eu defino o preenchimento do segundo círculo False
, o que é útil para envolver os principais resultados (como meu ponto de dados amarelo).