Meerdere lijnen plotten in ggplot2 (met voorbeeld)


U kunt de volgende basissyntaxis gebruiken om meerdere lijnen in ggplot2 te plotten:

 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 '))

Deze specifieke syntaxis creëert een plot in ggplot2 met drie lijnen.

Deze syntaxis gaat ervan uit dat uw dataframe een lang formaat heeft.

Het volgende voorbeeld laat zien hoe u in de praktijk meerdere lijnen in ggplot2 kunt plotten.

Voorbeeld: meerdere lijnen plotten in ggplot2

Stel dat we het volgende dataframe in R hebben dat informatie bevat over het aantal verkopen in drie verschillende winkels op vijf verschillende dagen:

 #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

Dit dataframe heeft momenteel een breed formaat.

We kunnen echter de functie pivot_longer() uit het Tidyr- pakket gebruiken om de gegevens snel naar een lang formaat te converteren:

 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

Gerelateerd: een inleiding tot pivot_longer() in R

Nu het dataframe een lang formaat heeft, kunnen we de volgende syntaxis met ggplot2 gebruiken om de verkopen van elke winkel in kaart te brengen:

 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 '))

De afzonderlijke rijen geven de verkopen weer die elke dag in elke winkel worden gerealiseerd.

Merk op dat we de functie scale_color_manual() hebben gebruikt om een aangepaste legenda aan de rechterkant van de plot te maken, zodat de lijnen gemakkelijker te interpreteren zijn.

U kunt gerust de argumenten voor deze functie wijzigen om een legenda te maken die er precies zo uitziet als u wilt.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:

Hoe gemiddelde en standaarddeviatie in ggplot2 te plotten
Hoe u een horizontale lijn aan een plot kunt toevoegen met ggplot2
Hoe een trendlijn te tekenen in ggplot2

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert