Necesita agregarlo a los ejes. A Circle
es una subclase de an Artist
, y an axes
tiene un add_artist
método.
Aquí hay un ejemplo de hacer esto:
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')
Esto da como resultado la siguiente figura:
El primer círculo está en el origen, pero por defecto lo clip_on
está True
, por lo que el círculo se recorta cuando se extiende más allá del axes
. El tercer círculo (verde) muestra lo que sucede cuando no recorta el Artist
. Se extiende más allá de los ejes (pero no más allá de la figura, es decir, el tamaño de la figura no se ajusta automáticamente para representar a todos sus artistas).
Las unidades para x, y y radio corresponden a unidades de datos por defecto. En este caso, no tracé nada en mis hachas (fig.gca()
devuelve los ejes actuales), y dado que los límites nunca se han establecido, el valor predeterminado es un rango x e y de 0 a 1.
Aquí hay una continuación del ejemplo, que muestra cómo importan las unidades:
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')
lo que resulta en:
Puede ver cómo configuro el relleno del segundo círculo False
, lo cual es útil para rodear los resultados clave (como mi punto de datos amarillo).