Comment puis-je mettre du texte dans le coin supérieur gauche (ou supérieur droit) d'une figure matplotlib, par exemple à l'endroit où se trouverait une légende en haut à gauche, ou au-dessus du tracé mais dans le coin supérieur gauche? Par exemple, si c'est un plt.scatter (), alors quelque chose qui serait dans le carré du scatter, placé dans le coin supérieur gauche.
J'aimerais faire cela sans connaître idéalement l'échelle du nuage de points tracé par exemple, car il passera d'un ensemble de données à un ensemble de données. Je veux juste que le texte soit à peu près en haut à gauche, ou à peu près en haut à droite. Avec le positionnement de type légende, il ne doit de toute façon pas chevaucher des points de nuage de points.
Merci!
text
etax.transAxes
) n'en fasse pas partie.Réponses:
Vous pouvez utiliser
text
.text
les coordonnées peuvent être données par rapport à l'axe, ainsi la position de votre texte sera indépendante de la taille du tracé:Empêcher le texte d'interférer avec n'importe quel point de votre dispersion est plus difficile. La méthode la plus simple consiste à définir y_axis (ymax in
ylim((ymin,ymax))
) sur une valeur un peu plus élevée que la coordonnée y maximale de vos points. De cette façon, vous aurez toujours cet espace libre pour le texte.EDIT: ici vous avez un exemple:
Les paramètres ha et va définissent l'alignement de votre texte par rapport au point d'insertion. c'est à dire. ha = 'left' est un bon ensemble pour empêcher un long texte de sortir de l'axe gauche lorsque le cadre est réduit (rendu plus étroit) manuellement.
la source
from pylab import figure, text, scatter, show
code de la réponse a été exécuté dans une console ipython en mode pylab où les importations explicites n'étaient pas nécessaires. Dans un environnement propre, vous devez importer ce qui précède et faireshow()
pour voir l'intrigueUne solution serait d'utiliser la
plt.legend
fonction, même si vous ne voulez pas de légende réelle. Vous pouvez spécifier l'emplacement de la zone de légende à l'aide duloc
keyterm. Plus d'informations peuvent être trouvées sur ce site Web, mais j'ai également inclus un exemple montrant comment placer une légende:Notez que parce que
loc=2
la légende se trouve dans le coin supérieur gauche du tracé. Et si le texte chevauche le tracé, vous pouvez le réduire en utilisantlegend.fontsize
, ce qui réduira alors la légende.la source
matplotlib
est quelque peu différente de la date à laquelle la réponse originale a été publiéematplotlib.pyplot.text
matplotlib.axes.Axes.text
Sortie des deux
la source