matplotlib: alignement du titre de la légende
dans matplotlib, Comment puis-je ajuster l'alignement du titre de la légende? Il est toujours centré, mais j'ai besoin qu'il soit aligné à gauche avec la boîte de légende. J'ai essayé de changer l'alignement du titre du Texte de l'artiste qui n'a aucun effet. Voir l'exemple suivant pour plus de détails:
from pylab import *
x = linspace(0, 1)
plot(x, x, label="1")
plot(x, x**2, label="2")
plot(x, x**3, label="3")
plot(x, sqrt(x), label="square root")
l = legend(title="Title", loc="best")
l.get_title().set_ha("left") # <== does not work
show()
la question se résume à quoi et qui contrôle le point d'ancrage de l'alignement des titres? Changer l'alignement en "droit" ou "centre" a un effet notable. Deuxième observation: pour les longues chaînes de titre, le point d'ancrage se déplace vers la bordure gauche de la boîte de légende ...
2 réponses
vous pouvez aligner la zone de légende complèteleg._legend_box.align
. Cela aligne tout à l'intérieur de la boîte de légende, mais l'effet est celui désiré pour avoir le titre de chaque côté de la boîte au lieu du centre.
je pense que vous avez besoin de déplacer l' Text
objet, à l'aide de la set_position((x, y))
méthode. Les unités de x
et y
sont des pixels, donc vous devrez expérimenter avec quelles valeurs semblent justes, ou utiliser un Transform
. Je ne suis pas sûr de savoir quelle combinaison de Transforms
pourrait être très utile.
bref, quelque chose comme ça pourrait marcher:
l.get_title().set_position((-10, 0)) # -10 is a guess