margini dell'area del tracciato ggplot2?


88

Esiste un modo semplice per aumentare lo spazio tra il titolo della trama e l'area della trama sottostante (la casella con i dati). Allo stesso modo, preferirei avere un po 'di spazio tra il titolo dell'asse e le etichette dell'asse.

In altre parole, c'è un modo per "spostare il titolo un po 'in alto, il titolo dell'asse y un po' a sinistra e il titolo dell'asse x un po 'in basso"?


1
Puoi sempre incollare alcuni "\n"caratteri nei titoli per forzare nuove righe.
joran

Risposte:


118

È possibile regolare i margini del grafico con plot.marginin theme()e quindi spostare le etichette degli assi e il titolo con l' vjustargomento di element_text(). Per esempio :

library(ggplot2)
library(grid)
qplot(rnorm(100)) +
    ggtitle("Title") +
    theme(axis.title.x=element_text(vjust=-2)) +
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) +
    theme(plot.title=element_text(size=15, vjust=3)) +
    theme(plot.margin = unit(c(1,1,1,1), "cm"))

ti darà qualcosa del genere:

inserisci qui la descrizione dell'immagine

Se vuoi maggiori informazioni sui diversi theme()parametri e sui loro argomenti, puoi semplicemente entrare ?themeal prompt R.


4
Grazie! Non ero sicuro di cosa fornire grid::unitsper far funzionare questo plot.marginargomento. Risulta che devi fornire un numero di lunghezza 4 a units. Peccato che l' xargomento unitsnon venga in qualche modo riciclato. Inoltre, probabilmente lo sai già, ma vale la pena notare / aggiornare che optsora è deprecato nell'ultima versione di ggplot2 (0.9.2+), sostituito da theme, poiché theme_textora è sostituito da element_text.
Paul McMurdie

45
L'ordine dei bordi per plot.margin è unit (c (in alto, a destra, in basso, a sinistra), unità) se qualcun altro vuole risparmiare tempo a cercarlo.
mightypile

20
@generic_user: forse più facile da ricordare come indicato qui :t, r, b, l (To remember order, think trouble).
Tung

3
In alternativa a ricordare ... è solo in senso orario dall'alto: top, right, bottom, left.
spops

1
inoltre:margin(t, r, l, b)
Brian D
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.