Hoe dichtheidsgrafieken in ggplot2 te overlappen (met voorbeelden)
Een dichtheidsplot is een handige manier om de verdeling van waarden in een dataset te visualiseren.
Vaak wilt u dichtheidsgrafieken van meerdere variabelen tegelijk bekijken. Gelukkig is dit eenvoudig te doen met behulp van het ggplot2 datavisualisatiepakket in R met de volgende syntaxis:
ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )
Het alfa- argument bepaalt de dekking van elke dichtheidsplot. Het is belangrijk om deze waarde lager dan 1 in te stellen, zodat u elke dichtheidsgrafiek kunt zien terwijl ze elkaar overlappen.
Het volgende stapsgewijze voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Stap 1: Creëer de gegevens
Laten we eerst een nep-dataset maken met drie variabelen:
#make this example reproducible set. seeds (1) #createdata df <- data. frame (var1=rnorm(1000, mean=0, sd=1), var2=rnorm(1000, mean=0, sd=3), var3=rnorm(1000, mean=3, sd=2)) #view first six rows of data head(df) var1 var2 var3 1 -0.6264538 3.4048953 1.2277008 2 0.1836433 3.3357955 -0.8445098 3 -0.8356286 -2.6123329 6.2394015 4 1.5952808 0.6321948 4.0385398 5 0.3295078 0.2081869 2.8883001 6 -0.8204684 -4.9879466 4.3928352
Stap 2: Converteer gegevens van breed naar lang
Vervolgens moeten we de gegevens converteren van een breed formaat naar een lang formaat om het compatibel te maken met ggplot2:
library (reshape) #convert from wide format to long format data <- melt(df) #view first six rows head(data) variable value 1 var1 -0.6264538 2 var1 0.1836433 3 var1 -0.8356286 4 var1 1.5952808 5 var1 0.3295078 6 var1 -0.8204684
Stap 3: Maak de overlappende dichtheidsgrafieken
Ten slotte kunnen we de overlappende dichtheidsgrafieken maken:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )
Voel je vrij om de alfawaarde aan te passen om de dichtheidsgrafieken min of meer transparant te maken.
Dit is bijvoorbeeld hoe de plots eruit zouden zien als we de alfawaarde zouden verhogen:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .7 )
Aanvullende bronnen
Hoe u een Gantt-diagram in R maakt met ggplot2
Hoe een gegroepeerde boxplot in R te maken met ggplot2
Hoe zij-aan-zij plots in R kunnen worden gemaakt met behulp van ggplot2