Come creare una legenda manuale in ggplot2 (con esempi)


Spesso potresti voler aggiungere una legenda manuale a una trama in ggplot2 con colori, etichette, titolo, ecc. personalizzati.

Fortunatamente, questo è semplice da fare utilizzando la funzione scale_color_manual() e l’esempio seguente mostra come farlo.

Esempio: creazione di una legenda manuale in ggplot2

Il codice seguente mostra come tracciare tre linee di regressione adattate in un grafico in ggplot2 con una legenda manuale personalizzata:

 library (ggplot2)

#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se= FALSE , aes(color=' Linear ')) +
  geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
  geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
  scale_color_manual(name=' Regression Model ',
                     breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
                     values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple ')) 

Utilizzando la funzione scale_color_manual() , siamo stati in grado di specificare i seguenti aspetti della legenda:

  • nome : il titolo della leggenda
  • pause : etichette nella legenda
  • valori : I colori nella legenda

Nota che possiamo anche usare la funzione theme() per cambiare la dimensione del carattere degli elementi della legenda:

 library (ggplot2)

#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_smooth(se= FALSE , aes(color=' Linear ')) +
  geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
  geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
  scale_color_manual(name=' Regression Model ',
                     breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
                     values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple '))+
 theme(legend. title =element_text(size= 20 ),
       legend. text =element_text(size= 14 ))

Tieni presente che la dimensione del carattere delle etichette del titolo e della didascalia è stata aumentata.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in ggplot2:

Come cambiare la posizione della legenda in ggplot2
Come modificare la dimensione della legenda in ggplot2
Come cambiare il titolo della legenda in ggplot2
Come modificare le etichette della legenda in ggplot2

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *