Hoe maak je een staafdiagram in r
Een stripdiagram is een type diagram dat numerieke gegevens langs één band weergeeft. Net als bij boxplots kunnen staafdiagrammen u helpen de distributie van gegevens te visualiseren. Staafdiagrammen kunnen een goed alternatief zijn voor boxplots als de steekproefomvang klein is, zodat u individuele gegevenspunten kunt zien.
In deze tutorial wordt uitgelegd hoe u een stripdiagram in R maakt met behulp van de ingebouwde functie stripchart() .
De stripchart()-functie
De basissyntaxis voor het maken van een staafdiagram in R is:
stripchart(x, methode, jitter, main, xlab, ylab, col, pcch, verticaal, groep.namen)
- x : een numerieke vector of een lijst met numerieke vectoren om te plotten. Dit is het enige argument dat nodig is om een plot te produceren.
- methode : de methode die moet worden gebruikt om punten met identieke waarden te scheiden. De standaard „overplot“-methode zorgt ervoor dat deze punten worden overplott, maar het is mogelijk om „jitter“ te specificeren om de punten te jitteren of „stack“ om de punten te stapelen.
- jitter : Wanneer methode = “jitter” wordt gebruikt, geeft dit de hoeveelheid jitter aan die moet worden toegepast.
- hoofd: titel van het diagram
- xlab : x-aslabel
- ylab : y-aslabel
- col : kleur van de plotpunten
- pch : vorm van de plotpunten
- verticaal : wanneer verticaal “TRUE” is, wordt het pad standaard verticaal getekend in plaats van horizontaal
- group.names : groepslabels die naast de plot moeten worden afgedrukt, als er meerdere numerieke vectoren worden geplot.
Staafdiagram voor één enkele digitale vector
In het volgende voorbeeld wordt de iris van de ingebedde R-gegevensset gebruikt om een staafdiagram te maken voor een enkele numerieke vector.
#view first six rows of iris dataset
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
Met de volgende code wordt een basisbanddiagram gemaakt voor de variabele Sepal.Length :
stripchart(iris$Sepal.Length)
We kunnen ook extra argumenten toevoegen om een titel en label op de x-as toe te voegen, de kleur van de punten te veranderen, de vorm van de punten te veranderen en de „jitter“-methode te gebruiken zodat individuele punten elkaar niet overlappen:
stripchart(iris$Sepal.Length, main = 'Sepal Length Distribution', xlab = 'Sepal Length', col = 'red', pch = 1, method = 'jitter')
In plaats van de punten te mengen, kunnen we ze ‘stapelen’:
stripchart(iris$Sepal.Length,
main = 'Sepal Length Distribution',
xlab = 'Sepal Length',
col = 'red',
pch = 1,
method = 'stack' )
We kunnen de plot ook verticaal weergeven in plaats van de standaard horizontaal en het aslabel wijzigen zodat het op de y-as ligt:
stripchart(iris$Sepal.Length, main = 'Sepal Length Distribution', ylab = 'Sepal Length' , col = 'red', pch = 1, method = 'jitter', vertical = TRUE )
Staafdiagram voor meerdere numerieke vectoren
We kunnen ook meerdere stripdiagrammen in één plot tekenen door een lijst met numerieke vectoren door te geven.
De volgende code maakt een lijst met de variabelen Sepal Length en Breedte in de irisgegevensset en produceert een staafdiagram voor elke variabele in één plot:
#create list of variables x <- list('Sepal Length' = iris$Sepal.Length, 'Sepal Width' = iris$Sepal.Width) #create plot that contains one strip chart per variable stripchart(x, main = 'Sepal Width & Length Distributions', xlab = 'Measurement', ylab = 'Variable', col = c('steelblue', 'coral2'), pch = 16, method = 'jitter')
Net als in het vorige voorbeeld kunnen we ervoor kiezen om de staafdiagrammen verticaal te plotten in plaats van de standaard horizontale grafiek:
stripchart(x, main = 'Sepal Width & Length Distributions',
xlab = 'Measurement',
ylab = 'Variable',
col = c('steelblue', 'coral2'),
pch = 16,
method = 'jitter',
vertical = TRUE )
Bovendien kunnen we een formule van de vorm y~x doorgeven aan de functie stripchart(), waarbij y een numerieke vector is, gegroepeerd op de waarde van x .
In de irisdataset kunnen we de gegevens bijvoorbeeld groeperen op soort , die drie verschillende waarden heeft („setosa“, „versicolor“ en „virginica“) en vervolgens de kelkbladlengte voor elke soort in een staafdiagram uitzetten:
stripchart(Sepal.Length ~ Species, data = iris, main = 'Sepal Length by Species', xlab = 'Species', ylab = 'Sepal Length', col = c('steelblue', 'coral2', 'purple'), pch = 16, method = 'jitter', vertical = TRUE)
Om de volledige documentatie voor de functie stripchart() in R te bekijken, typt u eenvoudigweg:
?stripchart