2012-05-11 14 views
13

Próbuję użyć suptitle, aby wydrukować tytuł i chcę tymczasowo zastąpić ten tytuł. Obecnie używam:Matplotlib suptitle drukuje nad starym tytułem

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

gdzie postać jest postacią matplotlib (canvas1 jest mplCanvas, ale to nie ma znaczenia), a tytuł jest ciągiem python.

Obecnie to działa, z wyjątkiem tego, że kiedy ponownie uruchomię ten kod później, po prostu wypisze nowy tekst na górze starego, co spowoduje, że tytuł będzie wygrawerowany, nieczytelny.

Jak zastąpić stare zdjęcie suptitle zamiast drukować?

Dzięki,

Tyler

Odpowiedz

17

figure.suptitle zwraca instancję matplotlib.text.Text. Możesz go zapisać i ustawić nowy tytuł:

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

To nie działało ... nadal robi ten sam błąd, w którym po prostu renderuje nowy tekst na stary. – tylerthemiler

+0

Ach, mniej więcej to zrobiłem. Pracowałem z mpl_canvases. Użyj tego, z wyjątkiem zapisu self.mpl_canvas_obj.figure.suptitle ('') gdzieś, a następnie użyj go jako pola txt. – tylerthemiler

8

Wskrzeszanie tego starego wątku, ponieważ ostatnio wpadłem na to. Istnieje odwołanie do obiektu Text zwrócony przez oryginalne ustawienie suptitle w figure.texts. Możesz użyć tego do zmiany oryginału, dopóki nie zostanie to naprawione w matplotlib.