web-dev-qa-db-fra.com

Placement matplotlib du texte par ex. sous-titre à l'intérieur du cadre

Jusqu'à présent, j'ai placé mes sous-titres au-dessus du cadre, comme ceci:

enter image description here

Comment puis-je obtenir les sous-titres de ci-dessus le cadre dans le cadre?

Jusqu'à présent, j'ai une solution qui imprime simplement un texte et le met à la bonne position avec le calcul xlim et ylim. Cependant, cela est sujet aux erreurs et si le texte est différent, il semble juste affreux. Existe-t-il un moyen de placer le sous-label dans le cadre? Ou simplement placer le texte sous le cadre et centré? ce serait vraiment pratique, si je n'avais pas besoin de connaître les données affichées à l'intérieur du cadre.

24
tarrasch

Votre solution utilisant text est également ma solution de choix. Cependant, vous n'avez pas besoin de calculer la position en fonction de xlim et ylim. Si vous définissez transform=ax.transAxes les coordonnées de positionnement du texte sont prises comme étant relatives au cadre de délimitation des axes (0,0 étant le coin inférieur gauche). Ainsi:

data = range(1,10);
fig = figure()
for i in range(6):
    ax = fig.add_subplot(2,3,i)

    ax.text(.5,.9,'centered title',
        horizontalalignment='center',
        transform=ax.transAxes)

    ax.plot(data)
show()

Plot showing text relative to axes bounding box.

J'espère que cela pourra aider!

31
Tobold

Avez-vous envisagé axes.title? Vous pouvez voir la documentation pour cela ici . Vous pouvez également passer les coordonnées x et y comme arguments de mot clé ax.title("my title", x=0.5, y=0.6).

J'espère que cela t'aides.

29
dmcdougall