Vous devez l'ajouter à un axe. A Circle
est une sous-classe de an Artist
et an axes
a une add_artist
méthode.
Voici un exemple de cette opération:
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')
Cela donne la figure suivante:
Le premier cercle est à l'origine, mais par défaut clip_on
est True
, de sorte que le cercle est clipsé quand jamais il va au - delà du axes
. Le troisième cercle (vert) montre ce qui se passe lorsque vous ne coupez pas le fichier Artist
. Il s'étend au-delà des axes (mais pas au-delà de la figure, c'est-à-dire que la taille de la figure n'est pas automatiquement ajustée pour tracer tous vos artistes).
Les unités pour x, y et rayon correspondent aux unités de données par défaut. Dans ce cas, je n'ai rien tracé sur mes axes ( fig.gca()
retourne les axes courants), et comme les limites n'ont jamais été définies, elles sont par défaut une plage x et y de 0 à 1.
Voici une suite de l'exemple, montrant l'importance des unités:
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')
ce qui se traduit par:
Vous pouvez voir comment j'ai défini le remplissage du 2ème cercle sur False
, ce qui est utile pour encercler les résultats clés (comme mon point de données jaune).