Cambia la dimensione del titolo degli assi e le etichette in ggplot2


146

Ho una domanda davvero semplice, alla quale faccio fatica a trovare la risposta. Speravo che qualcuno qui potesse aiutarmi.

Un esempio di frame di dati è presentato di seguito:

a <- c(1:10)
b <- c(10:1)
df <- data.frame(a,b)
library(ggplot2)
g = ggplot(data=df) + geom_point(aes(x=a, y=b)) +
  xlab("x axis")
g

Voglio solo imparare come cambio la dimensione del testo dei titoli degli assi e delle etichette degli assi.

Risposte:


314

È possibile modificare il testo dell'asse e le dimensioni dell'etichetta con argomenti axis.text=e axis.title=in funzione theme(). Se è necessario, ad esempio, modificare solo la dimensione del titolo dell'asse x, quindi utilizzare axis.title.x=.

g+theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold"))

Ci sono buoni esempi sull'impostazione di diversi theme()parametri nella pagina ggplot2 .


8
rel()Ora c'è anche una funzione molto intuitiva . es.size = rel(2.0)
HongboZhu,

2
come si cambierebbe la labs(x = "x axis")dimensione del testo senza cambiare il valore dei tick dell'asse x?
baxx,

53

Penso che un modo migliore per farlo sia quello di cambiare base_sizeargomento. Aumenterà le dimensioni del testo in modo coerente.

g + theme_grey(base_size = 22)

Come visto qui .


5
Se hai già altre themeistanze, ciò può causare conflitti.
Adam Erickson,

10

Se stai creando molti grafici, potresti essere stanco di digitare per ogni grafico le righe di codice che controllano la dimensione dei titoli e dei testi. Quello che faccio in genere è la creazione di un oggetto (di classe "tema" "gg") che definisca le caratteristiche del tema desiderate. Puoi farlo all'inizio del tuo codice.

My_Theme = theme(
  axis.title.x = element_text(size = 16),
  axis.text.x = element_text(size = 14),
  axis.title.y = element_text(size = 16))

Successivamente, tutto ciò che dovrai fare è aggiungere My_Theme ai tuoi grafici.

g + My_Theme
se hai un altro grafico, g1, basta scrivere:
g1 + My_Theme 
e così via.

4

Modificare le dimensioni di (quasi) tutti gli elementi di testo, in un unico posto e in modo sincrono, rel()è abbastanza efficiente:
g+theme(text = element_text(size=rel(3.5))

Potresti voler modificare leggermente il numero per ottenere il risultato ottimale. Imposta le etichette e i titoli degli assi orizzontale e verticale e altri elementi di testo sulla stessa scala. Un'eccezione sono i titoli delle griglie sfaccettate che devono essere impostati manualmente sullo stesso valore, ad esempio se in un grafico vengono utilizzati sia gli aspetti x che y:
theme(text = element_text(size=rel(3.5)), strip.text.x = element_text(size=rel(3.5)), strip.text.y = element_text(size=rel(3.5)))

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.