Søjlediagrammer er gode til at illustrere fordelingen af kategoriske variable. F.eks. hvor mange mænd hhv. kvinder har man i en gruppe - eller i flere forskellige grupper, hvis man ønsker at vide om kønsfordelingen i grupperne er ens (eller nogenlunde ens). Datasættet indeholder en registrering af køn (“male” eller “female”) i to forskellige grupper (“Team A” eller “Team B”)

library(ggplot2, quietly = TRUE)
teams <- dget("https://statepi.statnoter.dk/data/barchart.robj")
head(teams)
  sex  group
1   m Team B
2   f Team B
3   f Team B
4   f Team A
5   m Team A
6   f Team B

Et enkelt søjlediagram laves som vist her, idet vi blot skal angive den parameter vi ønsker at få optalt. I nedenstående eksempel undersøger vi altså bare hvor mange mænd hhv. kvinder der er i alt i vores datasæt.

ggplot(data = teams) +
    geom_bar(mapping = aes(x = sex))

Opdeling

Som med de andre plots vi har set på, vil man ofte ønske at lave en form for opdeling. Man kan jo prøve den umiddelbare løsning, dvs. at plottet opdeles i forskellige farver. Bemærk at her benyttes fill i stedet for color. Man kan også benytte color, men i så fald får man farvet kanten rundt om søjlerne:

ggplot(data = teams) +
    geom_bar(mapping = aes(x = sex, fill = group))

Det giver selvfølgelig en opdeling, og er i nogle situationer faktisk et fint plot. Men måske ville man gerne have søjlerne til at stå ved siden af hinanden. Det kan gøres som vist her:

ggplot(data = teams) +
    geom_bar(mapping = aes(x = sex, fill = group), position = "dodge")