Histogrammen per groep maken in ggplot2 (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om een groepsgewijze histogram in ggplot2 te maken:
ggplot(df, aes(x=values_var, fill=group_var)) + geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') + scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
In dit specifieke voorbeeld wordt een plot gemaakt met drie overlappende histogrammen van rood, blauw en paars.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: maak een histogram per groep in ggplot2
Stel dat we het volgende dataframe in R hebben dat informatie bevat over de punten die zijn gescoord door basketbalspelers uit drie verschillende teams:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each=100),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
We kunnen de volgende code gebruiken om histogrammen te maken die de verdeling weergeven van de punten die door elk van de drie teams zijn gescoord:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
De drie histogrammen vertegenwoordigen de verdeling van de punten die door de spelers van elk team zijn gescoord.
De legenda aan de rechterkant van het diagram laat zien welke kleur overeenkomt met elk team.
Merk op dat het kleurargument de omtrekkleur van de staven in elk histogram specificeert en het alfa- argument de transparantie (tussen 0 en 1) specificeert die voor de staven moet worden gebruikt.
Door de alfawaarde op minder dan 1 in te stellen, kunnen we de overlappende balken tussen de histogrammen zien.
Voel je vrij om de functie labs() te gebruiken om de labels in de plot te wijzigen en een ggplot2-thema te kiezen dat bij jouw stijl past:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) +
labs(fill=' Team ', x=' Points Scored ', y=' Count ', title=' Points Scored by Team ') +
theme_classic()
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe maak je een relatief frequentiehistogram in R
Hoe meerdere boxplots in één grafiek in R te plotten
Hoe meerdere lijnen in een grafiek te plotten in R