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