Jak grupować według dwóch kolumn w ggplot2 (z przykładem)
Podczas tworzenia wykresu w ggplot2 możesz użyć następującej podstawowej składni do grupowania według dwóch kolumn:
ggplot(df, aes(x=var1, y=var2, color=var3, shape=var4,
group=interaction(var3, var4))) +
geom_point() +
geom_line()
Ten konkretny kod tworzy wykres liniowy, na którym punkty są pogrupowane według kolumn var3 i var4 w ramce danych.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: grupuj według dwóch kolumn w ggplot2
Załóżmy, że mamy następującą ramkę danych w R, która pokazuje całkowitą sprzedaż na przestrzeni kilku tygodni w dwóch różnych sklepach, gdy przeprowadzono dwie różne promocje:
#create data frame
df <- data. frame (store=rep(c(' A ', ' B '), each= 8 ),
promo=rep(c(' Promo 1 ', ' Promo 2 '), each= 4 , times= 2 ),
week=rep(c(1:4), times= 4 ),
sales=c(1, 2, 6, 7, 2, 3, 5, 6, 3, 4, 7, 8, 3, 5, 8, 9))
#view data frame
df
store promo week sales
1 A Promo 1 1 1
2 A Promo 1 2 2
3 A Promo 1 3 6
4 A Promo 1 4 7
5 A Promo 2 1 2
6 A Promo 2 2 3
7 A Promo 2 3 5
8 A Promo 2 4 6
9 B Promo 1 1 3
10 B Promo 1 2 4
11 B Promo 1 3 7
12 B Promo 1 4 8
13 B Promo 2 1 3
14 B Promo 2 2 5
15 B Promo 2 3 8
16 B Promo 2 4 9
Możemy użyć poniższego kodu, aby utworzyć wykres liniowy w ggplot2, w którym wartości danych są pogrupowane według kolumn sklepu i promocji :
library (ggplot2) #create line plot with values grouped by store and promo ggplot(df, aes(x=week, y=sales, color=store, shape=promo, group=interaction(store, promo))) + geom_point(size= 3 ) + geom_line()

Rezultatem jest wykres liniowy, na którym każda linia przedstawia wartości sprzedaży dla każdej kombinacji sklepu i promocji .
W szczególności cztery linie przedstawiają wartości sprzedaży dla następujących kombinacji:
- Promocja 1 w sklepie A
- Promocja 2 w sklepie A
- Promocja 1 w sklepie B
- Promocja 1 w sklepie B
Dwie legendy z boku wykresu wskazują, które linie reprezentują jakie kombinacje.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w ggplot2:
Jak obracać etykiety osi w ggplot2
Jak ustawić przerwy osi w ggplot2
Jak ustawić limity osi w ggplot2
Jak zmienić etykiety legendy w ggplot2