2012-10-18 14 views
18

tej pory mam umieścić moje suptitles nad ramą, tak:Umieszczenie tekstu w Matplotlib suptitle wewnątrz ramy

enter image description here

Jak mogę uzyskać suptitles z powyżej rama w ramce?

Do tej pory mam rozwiązanie, które po prostu drukuje tekst i ustawia go na właściwej pozycji z obliczaniem xlim i ylim. Jednak jest to błąd i jeśli tekst jest inny, wygląda po prostu fatalnie. Czy istnieje sposób na ustawienie suplabel w ramce? Lub po prostu umieść tekst pod ramką i wyśrodkuj? byłoby naprawdę wygodne, gdybym nie musiał wiedzieć o danych wyświetlanych w ramce.

Odpowiedz

22

Twoje rozwiązanie z wykorzystaniem text jest również moim rozwiązaniem. Jednak nie musisz obliczać pozycji na podstawie xlim i ylim. Jeśli ustawisz transform=ax.transAxes, współrzędne do pozycjonowania tekstu są przyjmowane jako odnoszące się do obwiedni osi (0,0 to lewy dolny róg). Tak:

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.

nadzieję, że pomoże!

+0

dzięki! Wiedziałem, że to będzie łatwe xD – tarrasch

+1

, więc jeśli chciałem dodać b c d na górnej lewej krawędzi tych wątków, którzy byliby różnymi zakresami, jak bym to zrobił? – tarrasch

24

Czy brałeś pod uwagę axes.title? Możesz zobaczyć dokumentację dla niego here. Możesz także przekazać współrzędne X i Y jako argumenty słów kluczowych ax.title("my title", x=0.5, y=0.6).

Mam nadzieję, że to pomoże.

+1

To wydaje się być najprostszym rozwiązaniem. –

+1

Albo nawet 'ax.title (" mój tytuł ", pozycja = (0,5, 0,6))' – Alex

+5

To byłby 'matplotlib.pyplot.title' lub' axis.set_title'. – tsbertalan

Powiązane problemy