Come tracciare più righe in ggplot2 (con esempio)


Puoi utilizzare la seguente sintassi di base per tracciare più righe in ggplot2:

 ggplot(df, aes(x=x_var, y=y_var)) + 
  geom_line(aes(color=group_var)) +
  scale_color_manual(name=' legend_title ', labels=c(' lab1 ', ' lab2 ', ' lab3 '),
                     values=c(' color1 ', ' color2 ', ' color3 '))

Questa particolare sintassi crea una trama in ggplot2 con tre righe.

Questa sintassi presuppone che il frame di dati sia in un formato lungo .

L’esempio seguente mostra come tracciare più righe in ggplot2 nella pratica.

Esempio: tracciare più linee in ggplot2

Supponiamo di avere il seguente frame di dati in R che contiene informazioni sul numero di vendite effettuate in tre negozi diversi in cinque giorni diversi:

 #create data frame
df <- data. frame (day=c(1, 2, 3, 4, 5),
                 storeA=c(5, 6, 8, 8, 9),
                 storeB=c(3, 3, 4, 5, 7),
                 storeC=c(8, 10, 12, 12, 17))

#view data frame
df

  day storeA storeB storeC
1 1 5 3 8
2 2 6 3 10
3 3 8 4 12
4 4 8 5 12
5 5 9 7 17

Questo frame di dati è attualmente in formato wide.

Tuttavia, possiamo utilizzare la funzione pivot_longer() del pacchetto Tidyr per convertire rapidamente i dati in un formato lungo:

 library (tidyr)

#convert data from wide to long format
df <- df %>% pivot_longer(cols=c(' storeA ', ' storeB ', ' storeC '),
                          names_to=' store ',
                          values_to=' sales ')

#view updated data frame
df

# A tibble: 15 x 3
     day store sales
      
 1 1 blindA 5
 2 1 storeB 3
 3 1 blindC 8
 4 2 blindA 6
 5 2 storeB 3
 6 2 storeC 10
 7 3 storeA 8
 8 3 storeB 4
 9 3 storeC 12
10 4 storeA 8
11 4 storeB 5
12 4 storeC 12
13 5 storeA 9
14 5 storeB 7
15 5 storeC 17

Correlati: un’introduzione a pivot_longer() in R

Ora che il frame di dati è in formato lungo, possiamo utilizzare la seguente sintassi con ggplot2 per tracciare le vendite di ciascun negozio:

 library (ggplot2)

#plot sales by store
ggplot(df, aes(x=day, y=sales)) + 
  geom_line(aes(color=store)) +
  scale_color_manual(name=' Store ', labels=c(' A ', ' B ', ' C '),
values=c(' red ', ' purple ', ' steelblue '))

Le singole righe mostrano le vendite effettuate ogni giorno in ciascun negozio.

Tieni presente che abbiamo utilizzato la funzione scale_color_manual() per creare una legenda personalizzata sul lato destro del grafico per rendere le linee più facili da interpretare.

Sentiti libero di modificare gli argomenti di questa funzione per creare una legenda che appaia esattamente come desideri.

Risorse addizionali

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

Come tracciare la media e la deviazione standard in ggplot2
Come aggiungere una linea orizzontale a una trama utilizzando ggplot2
Come disegnare una linea di tendenza in ggplot2

Aggiungi un commento

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