2013-02-18 15 views
9

Sto utilizzando l'eccellente theme_minimal() trovato in ggplot0.9.3 che ha uno sfondo bianco. Vorrei posizionare il titolo delle mie trame in una posizione personalizzata nell'angolo in alto a destra della trama. Nell'esempio seguente conosco i valori x e , ma mi chiedo se esiste un modo per superare i valori xmax e ymax per garantire il posizionamento del testo in alto a destra. Idealmente, il testo sarebbe giustificato correttamente.Posizione ggplot title in alto a destra della trama

#example plot 
p <- qplot(mpg, wt, data = mtcars, colour = cyl) 
p + annotate("text", x = 30, y = 5, label = "Custom Title") 

#what I would like 
p + annotate("text", y= ymax, x =xmax_or_RightJustified) 
+0

A priori, non credo che ci sia un modo semplice per ottenere il colore del testo in un angolo. L'approccio più sicuro sarebbe usare max (x) e max (y) dai dati per aiutarti a posizionarlo. Un problema è che esiste un'espansione predefinita del 4% delle scale x e y come padding: cosa succede se si cambia all'interno di una chiamata plot? Puoi ottenere l'equivalente delle coordinate d'angolo con, per esempio, 'u <- ggplot_build (p)', estraendo 'u $ panel $ range [[1]] $ y.range [2]' e u $ $ $ intervalli [[1]] $ x.range [2], ma questo è un calcolo a posteriori, che non penso che tu voglia. Questo dovrebbe andare in una funzione a tema? – Dennis

risposta

11

È possibile utilizzare funzioni max() e min() all'interno annotate(), e quindi aggiungere hjust=1 per garantire che il testo è inserito all'interno di trama (giustificato).

p + annotate("text", y= max(mtcars$wt), x =max(mtcars$mpg),label="Custom Title",hjust=1) 
23

Si può fare

p + annotate("text", x=Inf, y = Inf, label = "Some text", vjust=1, hjust=1) 
Problemi correlati