Denne side tager udgangspunkt i et datasæt med bla. alder og bmd (knogletæthed).

Start med at indlæse data, og vise de første linjer

#indlæs først biblioteket til fremstilling af grafer
library(ggplot2,quietly=TRUE)
bmd <- dget("https://statepi.statnoter.dk/data/bmd2.robj")
head(bmd)
  sex age   bmd
2   1  54 0.991
4   2  73 0.822
5   1  56 1.173
6   2  61 0.930
7   2  56 0.824
8   1  65 0.842

Lav et xy-plot der illustrerer sammenhængen mellem alder og bmd

Vi ønsker at lave et xy-plot der illustrerer sammenhængen mellem alder og bmd, som jo begge er numeriske variable. Dette gøres med ggplot-funktionen geom_point(), som vist herunder:

ggplot(data = bmd) +
    geom_point(mapping = aes(x = age, y = bmd), size = 2)

Overvej hvad plottet viser, og prøv at finde ud af hvad parameteren size=2 gør.

Opdel plottet i mænd og kvinder

Tit er det relevant at kunne opdele en sådant plot efter en kategorisk variabel, f.eks. køn. Det kan gøres som vist her:

ggplot(data = bmd) +
    geom_point(mapping = aes(x = age, y = bmd, color = sex), size = 1)

Kan du få øje på hvad det er der gør at data vises opdelt på køn? Overvej hvor let det er (når man ved det selvfølgelig :-))

Det færdige plot.

Nedenstående viser en masse kode som kan benyttes til at få plottet til at se ud præcist som man ønsker. Prøv at lege med koden, og se om du kan forstå hvad den gør.

ggplot(data = bmd) +
    geom_point(mapping = aes(x = age, y = bmd, color = sex), size = 1) +
    #nedenstående linje benyttes til at styre farver, inkl. titler på etiketterne
    scale_color_manual(name = "Køn", labels = c("Mænd", "Kvinder"),
        breaks = c("1", "2"), values = c("blue", "red")) +
    scale_x_continuous(name = "Alder/år") #og denne linje ændrer selvfølgelig x-aksen

Delplot

Og hvis man kun ønsker at plotte en delmængde af punkterne (f.eks mændene), så kan man naturligvis kombinere ovenstående med funktionen subset() som vi har benyttet tidligere (så bliver opdelingen mellem mænd og kvinder naturligvis irrelevant):

ggplot(data = subset(bmd, sex == 1)) + #bemærk hvordan det anvendte datasæt nu er erstattet af et delsæt
    geom_point(mapping = aes(x = age, y = bmd), size = 1) +
    scale_x_continuous(name = "Alder/Ã¥r") +
    ggtitle(label = "Sammenhæng mellem alder og BMD", subtitle = "Mænd") #Laver en titel på grafen