Jak wykreślić wiele linii w ggplot2 (z przykładem)


Możesz użyć następującej podstawowej składni, aby wykreślić wiele linii w 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 '))

Ta konkretna składnia tworzy wykres w ggplot2 z trzema liniami.

W tej składni zakłada się, że ramka danych ma długi format .

Poniższy przykład pokazuje, jak w praktyce wykreślić wiele linii w ggplot2.

Przykład: wykreślanie wielu linii w ggplot2

Załóżmy, że mamy w R następującą ramkę danych zawierającą informacje o liczbie sprzedaży zrealizowanej w trzech różnych sklepach w pięciu różnych dniach:

 #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

Ta ramka danych jest obecnie w szerokim formacie.

Możemy jednak użyć funkcji obrotowej() z pakietu Tidyr , aby szybko przekonwertować dane do długiego formatu:

 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

Powiązane: Wprowadzenie do metody obrotowej() w języku R

Teraz, gdy ramka danych ma długi format, możemy użyć następującej składni z ggplot2, aby wykreślić sprzedaż w każdym sklepie:

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

Poszczególne wiersze przedstawiają sprzedaż dokonaną każdego dnia w każdym sklepie.

Zauważ, że użyliśmy funkcjiscale_color_manual () do utworzenia niestandardowej legendy po prawej stronie wykresu, aby ułatwić interpretację linii.

Możesz dowolnie modyfikować argumenty tej funkcji, aby utworzyć legendę wyglądającą dokładnie tak, jak chcesz.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w ggplot2:

Jak wykreślić średnią i odchylenie standardowe w ggplot2
Jak dodać linię poziomą do wykresu za pomocą ggplot2
Jak narysować linię trendu w ggplot2

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *