2012-05-11 1 views
13

J'essaye d'employer suptitle pour imprimer un titre, et je veux remplacer occationally ce titre. Actuellement, je suis en utilisant: où figureMatplotlib suptitle imprime sur le vieux titre

self.ui.canvas1.figure.suptitle(title) 

est une figure matplotlib (canvas1 est un mplCanvas, mais ce n'est pas pertinent) et le titre est une chaîne de python.

Actuellement, cela fonctionne, sauf que lorsque je réexécuterai ce code plus tard, il imprime simplement le nouveau texte par-dessus l'ancien, ce qui donne un titre garrotté et illisible.

Comment remplacer l'ancien suptitle d'une figure, au lieu de simplement l'imprimer?

Merci,

Tyler

Répondre

17

figure.suptitle retourne une instance matplotlib.text.Text. Vous pouvez enregistrer et définir le nouveau titre:

txt = fig.suptitle('A test title') 
txt.set_text('A better title') 
plt.draw() 
+0

Cela n'a pas fonctionné ... fait toujours le même bug où il rend juste le nouveau texte sur l'ancien. – tylerthemiler

+0

Ah, je l'ai fait plus ou moins. Je travaillais avec mpl_canvases. Utilisez ceci, sauf sauvegarder le self.mpl_canvas_obj.figure.suptitle ('') quelque part, puis l'utiliser comme champ txt. – tylerthemiler

8

Ressusciter ce vieux fil parce que je récemment couru dans tout cela. Il existe des références à l'objet Text renvoyé par le paramètre d'origine de suptitle dans figure.texts. Vous pouvez l'utiliser pour changer l'original jusqu'à ce que cela soit corrigé dans matplotlib.

Questions connexes