Come aggiungere una linea orizzontale alla trama e alla legenda in ggplot2


Puoi utilizzare la seguente sintassi per aggiungere una linea orizzontale a un grafico in ggplot2 e quindi aggiungere anche la linea orizzontale come elemento nella legenda:

 library (ggplot2)

#create data frame with values to plot
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)

Creando un data frame separato contenente solo il valore dell’intercetta y della linea orizzontale, possiamo aggiungere la linea orizzontale al grafico e aggiungerla automaticamente alla legenda.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: aggiungi una linea orizzontale alla trama e alla legenda in ggplot2

Supponiamo di avere il seguente frame di dati in R che contiene informazioni sui giocatori di basket di diverse squadre:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#view data frame
df

   team assists points
1 To 1 4
2 to 3 8
3 to 3 12
4 to 4 10
5 to 5 18
6 B 7 25
7 B 7 20
8 B 9 28
9 B 9 33
10 B 10 35

Diciamo che vogliamo creare un grafico a dispersione in ggplot2 per visualizzare i valori di punti e assist per ciascun giocatore in base alla sua squadra, quindi aggiungiamo una linea orizzontale su y = 22 per definire una “soglia” per la differenza tra il buono e il cattivo Giocatori.

Possiamo usare la seguente sintassi per fare ciò:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

ggplot2 aggiunge una linea orizzontale alla legenda

Si noti che la legenda a destra del grafico contiene cerchi che indicano quali punti sul grafico appartengono a quali squadre e alla legenda è stata aggiunta anche una linea orizzontale per rappresentare la linea di demarcazione.

Se vuoi cambiare la didascalia della linea orizzontale nella legenda, modifica semplicemente il testo nella colonna Righe nel riquadro Break Data.

Ad esempio, possiamo utilizzare la seguente sintassi per modificare l’etichetta della linea orizzontale in “Soglia del bene contro il male”:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff of Good vs. Bad ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

Da notare che l’etichetta della linea orizzontale nella legenda è cambiata.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in ggplot2:

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

Aggiungi un commento

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