2012-10-18 7 views
18

Finora ho posto il mio suptitles sopra la cornice, in questo modo:Posizionamento del testo in mazzetta ad es. suptitle all'interno della cornice

enter image description here

Come posso ottenere il suptitles da sopra il telaio nel telaio?

Finora ho una soluzione che stampa solo un testo e lo imposta nella posizione corretta con il calcolo di xlim e ylim. Tuttavia questo è errorprone e se il testo è diverso sembra semplicemente impressionante. C'è un modo per impostare la suplabel nel frame? O basta posizionare il testo sotto la cornice e centrato? sarebbe davvero conveniente, se non avessi bisogno di sapere i dati che vengono visualizzati all'interno del frame.

risposta

22

La soluzione che utilizza text è anche la mia soluzione ideale. Tuttavia, non è necessario calcolare la posizione in base a xlim e ylim. Se si imposta transform=ax.transAxes, le coordinate per posizionare il testo sono considerate relative al riquadro di delimitazione degli assi (0,0 è l'angolo in basso a sinistra). In questo modo:

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.

Speranza che aiuta!

+0

grazie! Sapevo che sarebbe stato facile xD – tarrasch

+1

quindi se avessi presumibilmente voluto aggiungere un b c d sul bordo in alto a sinistra di questi grafici, che erano tutti diversi, come avrei fatto? – tarrasch

24

Avete considerato axes.title? Potete vedere la documentazione per questo here. Puoi anche passare le coordinate x e y come argomenti delle parole chiave ax.title("my title", x=0.5, y=0.6).

Spero che questo aiuti.

+1

Questa sembra la soluzione più semplice. –

+1

O anche 'ax.title (" my title ", position = (0.5, 0.6))' – Alex

+5

Questo sarebbe 'matplotlib.pyplot.title' o' axis.set_title'. – tsbertalan