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.