Basisvaardigheden in R: Grafieken: de basis
Staafdiagram
In R wordt een staafdiagram gemaakt met de functie barplot()
. Het gebruik ervan is vrij eenvoudig voor simpele gevallen (zoals het weergeven van de waarden langs één discrete of categorische variabele), maar je kunt ook meer geavanceerde grafieken maken (zoals gestapelde of gegroepeerde staafdiagrammen).
In het onderstaande voorbeeld beperken we ons tot een eenvoudig geval, waarbij we eerst de gemiddelde windsnelheden per maand berekenen en deze vervolgens weergeven (maar let op hoe de labels in het staafdiagram automatisch langs de x-as worden opgenomen omdat we de vermeldingen in de gegevensvector gemiddelde_windsnelheid
hebben gelabeld). In dit voorbeeld gebruiken we in de in R ingebouwde dataset airquality (uit het pakket "datasets")
.
Luchtkwaliteit-voorbeeld van een staafdiagram
R-script
gemiddelde_windsnelheid <- with(airquality,
c(Mei = mean(Wind[Month==5]),
Juni = mean(Wind[Month==6]),
Juli = mean(Wind[Month==7]),
Augustus = mean(Wind[Month==8]))
)
barplot(gemiddelde_windsnelheid,
ylab = "gemiddelde windsnelheid (mph)")
Staafdiagram
We kunnen ook een staafdiagram maken van de frequentie waarmee een categorische variabele voorkomt in een dataset. Hiervoor moeten we eerst de frequenties berekenen met behulp van de functie table()
. De uitvoer van deze functie kan rechtstreeks worden doorgegeven aan de functie barplot()
. In dit voorbeeld krijgen we de indruk dat elke dag de wind is geregistreerd, wat leidt tot frequenties van 30 en 31 metingen per maand.
Frequentie staafdiagram
R script
maandelijkse_frequentie <- table(airquality$Month )
barplot(maandelijkse_frequentie,
names.arg = c("Mei", "Juni", "Juli",
"Augustus", "September"),
ylab = "frequentie van metingen")
Staafdiagram
Geclusterd staafdiagram In dit voorbeeld gebruiken we opnieuw de Arthritis
datasetuit het vcd
pakket. We creëren een geclusterd staafdiaramwaarin de hoogte van de staven de frequentie aanduiden van alle combinaties van twee categoriale variaben (Improved en Treatment)
> install.packages("vcd")
> library(vcd)
> str(Arthritis) 'data.frame': 84 obs. of 5 variables: $ ID : int 57 46 77 17 36 23 75 39 33 55 ... $ Treatment: Factor w/ 2 levels "Placebo","Treated": 2 2 2 2 2 2 2 2 2 2 ... $ Sex : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 2 ... $ Age : int 27 29 30 32 46 58 59 59 63 63 ... $ Improved : Ord.factor w/ 3 levels "None"<"Some"<..: 2 1 1 3 3 3 1 3 1 1 ...
> tweeweg_tabel <- with(Arthritis, table(Treatment,Improved))
> tweeweg_tabel Improved Treatment None Some Marked Placebo 29 7 7 Treated 13 7 21
> barplot(tweeweg_tabel, beside=TRUE, col = c("blue", "red")) > legend("top", legend = c("Placebo", "Treated"), fill = c("blue", "red"))