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 ) 

Overlappende dichtheidsgrafieken in ggplot2

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert