Est-il possible d'ajouter une chaîne de caractères comme un élément de légende dans matplotlib
Je suis à la production de certaines parcelles dans matplotlib et souhaitez ajouter le texte explicatif de certaines données. Je veux avoir une chaîne à l'intérieur de ma légende comme indépendante de l'élément de légende au-dessus 'de 0 à 10' de l'élément. Personne ne sait si il est possible de faire cela?
Voici le code de ma légende:
ax.legend(['0-10','10-100','100-500','500+'],loc='best')
- Si il n'y a pas une façon correcte de le faire, c'est la seule autre option que je peux penser à est de tromper le graphique de la production par traçage des valeurs vides
- Essayez
annotate()
fonction. J'ai juste posé la même question: stackoverflow.com/questions/16823703/adding-label-to-contour - Pourquoi ne pas simplement mettre les légendes
title
? I. e.ax.legend(['0-10','10-100','100-500','500+'], loc='best', title='Explanatory text')
.
Vous devez vous connecter pour publier un commentaire.
Sûr.
ax.legend()
a deux argument forme qui accepte une liste d'objets (poignées) et une liste de chaînes de caractères (les étiquettes). Utiliser un objet factice (aka un "proxy artiste") pour votre chaîne. J'ai choisi unmatplotlib.patches.Rectangle
sans fond, avec 0 linewdith ci-dessous, mais vous pouvez utiliser n'importe quel artiste.Par exemple, disons que vous avez 4 barre d'objets (puisque vous n'avez pas de poste le code utilisé pour générer le graphique, je ne peux pas le reproduire exactement).
line = ax.plot(x, y)
. Le problème est queplot
renvoie un liste de lignes, de sorte que vous devez obtenir de l'artiste. Vous pouvez soit le faireline = ax.plot(x, y)[0]
ou neline, = ax.plot(x, y)
qui prend avantage de paramètre déballage.Solution Alternative, espèce de sale, mais assez rapide.