Hoe te groeperen op twee kolommen in ggplot2 (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om op twee kolommen te groeperen bij het maken van een plot in ggplot2:
ggplot(df, aes(x=var1, y=var2, color=var3, shape=var4, group=interaction(var3, var4))) + geom_point() + geom_line()
Deze specifieke code produceert een lineair diagram waarin de punten worden gegroepeerd in de kolommen var3 en var4 in het dataframe.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: groepeer op twee kolommen in ggplot2
Stel dat we het volgende gegevensframe in R hebben dat de totale omzet in de loop van verschillende weken in twee verschillende winkels weergeeft wanneer twee verschillende promoties werden uitgevoerd:
#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
We kunnen de volgende code gebruiken om een lijndiagram te maken in ggplot2 waarin de gegevenswaarden zijn gegroepeerd op winkel- en promotiekolommen :
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()
Het resultaat is een lijndiagram waarin elke lijn de verkoopwaarden voor elke combinatie van winkel en promotie vertegenwoordigt.
In het bijzonder vertegenwoordigen de vier lijnen de verkoopwaarden voor de volgende combinaties:
- Promo 1 in winkel A
- Promo 2 bij winkel A
- Promo 1 in winkel B
- Promo 1 in winkel B
De twee legenda’s aan de zijkant van het diagram geven aan welke lijnen welke combinaties vertegenwoordigen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in ggplot2 kunt uitvoeren:
Hoe aslabels te roteren in ggplot2
Hoe aseinden in ggplot2 in te stellen
Hoe aslimieten in ggplot2 in te stellen
Hoe legendalabels in ggplot2 te veranderen