Fremstilling af grafer er et af de mere komplicerede emner. Heldigvis er det ret enkelt hvis man har noget kode man kan kopiere. Denne notesbog indeholder derfor diverse relevante eksempler som man kan tage udgangspunkt i.
Bemærk: Hvis du skriver din kode i en script-fil, og har svært ved at få den til at vise grafen, så læs evt. side 2.7.
Inden man kan begynde at fremstille grafer, skal man have installeret en udvidelsespakke til formålet. Dette skal kun gøres en gang for alle, ved at køre følgende kode:
install.packages("ggplot2")
Læs mere om udvidelsespakker på side 1.7.
Start med at indlæse det kode-bibliotek der skal benyttes samt et datasæt, og vis de første 5 rækker af datasættet
library(ggplot2) #indlæs det kodebibliotek der skal bruges til at lave graferne. Denne linje skal køres hver gang man genstarter RStudio
myData <- dget("https://statepi.statnoter.dk/data/hemo_data.robj") #indlæs data
head(myData) #vis de første rækker:
hemoglobin sex
1 9.68 male
2 9.11 female
3 8.39 female
4 8.57 female
5 9.26 male
6 9.17 male
cat("Antal rækker: ", nrow(myData)) #vis antallet af rækker i datasættet
Antal rækker: 100
Nedenstående kommando fremstiller et histogram med en intervalbredde på 0,3, baseret på tallene i kolonnen “hemoglobin” fra datasættet “myData”.
Prøv i øvrigt at lege med parameteren “binwidth”. Hvad gør den? Funktionen ser lidt kompliceret ud. Accepter i første omgang at du ikke forstår alle detaljer.
ggplot(data = myData) + #Dette fortæller R at man vil lave et plot og hvilke data man vil tage udgangspunkt i
#(bemærk at linjen afsluttes med "+", som fortæller at definitionen af grafen fortsætter på den følgende linje)
geom_histogram(mapping = aes(x = hemoglobin), binwidth = 0.3) #Dette specificerer hvilket plot der skal laves ud fra data
Prøv først at eksekvere nedenstående kodevindue - hvad gør denne funktion:
seq(from = 7, to = 11, by = 0.5)
[1] 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0
Nedenstående viser nu hvordan x-aksen kan justeres, og hvordan der kan sættes titler på akserne
ggplot(data = myData) +
geom_histogram(mapping = aes(x = hemoglobin), binwidth = 0.3,
color = "red", center = 7.15) +
scale_x_continuous(name = "Hæmoglobin, mmol/L", breaks = seq(7, 11, by = 0.3)) + #dette specificerer x-aksen, herunder navn og akseinddeling.
scale_y_continuous(name = "Antal") + #og tilsvarende kan man justere y-aksen
theme(axis.text.x = element_text(angle = 45, hjust = 1)) #og roter mærkerne på x-aksen
Google spiller en central rolle når man arbejder med R. Bemærk den sidste linje i koden til ovenstående graf. Den har man ingen chance for at forstå - eller huske. Men det betyder ikke så meget - man spørger bare google, om hvordan man roterer mærkerne på x-aksen i et ggplot. Hvis man har brug for hjælp til at lave en graf, er det en god idé at tilføje ordet ggplot til sin søgning, da dette er meget specifikt for fremstilling af grafer i R.