Afsnit R.2: Figurer i R

Den grundliggende funktion til at lave en figur i R er plot. Input til plot er to vektorer af samme længde, for eksempel og Uden andre argumenter vil plot(x,y) lave en figur, hvor punkterne er afsat som små cirkler. Her er længden af vektorerne. En mere generel version er
plot(x,y,type="t",lty=nl,pch=np,col=nc)
hvor vedrører, om punkterne vises, og om de forbindes med streger, vedrører linjestykkernes udseende, angiver hvilken punktmarkør, der bruges, og angiver et farvevalg. De vigtigste muligheder for figurtypen () er:
Når punkterne forbindes med linjestykker, specificerer lty udseendet af linjestykkerne. De vigtigste muligheder for linjens udseende () er:
Punktmarkøren kan ændres med pch. Her er nogle muligheder ():
Farvemulighederne bestemmes gennem col. Her er nogle muligheder ():
Nedenfor vises nogle eksempler på figurer. De tre figurer, der laves i den følgende kodedel, er sat sammen og vist i den første figur nedenfor.

 > x=c(2,3,1,4,5)
 > y=x^2

 > plot(x,y)  # her kommer et nyt vindue med figuren

 > plot(x,y,type="l") # figuren ovenfor erstattes af ny figur

 > xs=sort(x)  # x sorteret i stigende orden
 > xs
  [1] 1 2 3 4 5

 > xI=order(x)  # placering af værdierne i xs i den oprindelige x
 > xI
  [1] 3 1 2 4 5

> plot(xs,y[xI],type="b",col=2)

Hvis man ikke specificerer titel på akserne, vil R blot bruge navnet på den variabel, der står i kaldet til plot. Man kan styre dette ved at tilføje xlab="navn" som et argument til plot. Dette giver et navn til førsteaksen, og ylab="navn" giver et navn til andenaksen. En titel til hele figuren kan fås ved at tilføje main="navn". Endvidere kan man selv styre startværdi og slutværdi på første- og andenaksen ved hjælp af xlim=c(x0,x1) og ylim=c(y0,y1). Figuren der laves i den følgende kodedel indgår som det nederste højre hjørne i den efterfølgende figur. Bemærk, at I nedenfor ser et eksempel, hvor en kommando deles over flere linjer.

 > a=c(0.032,0.034,0.214,0.263,0.275,0.275,0.450,0.500,
   0.500,0.630,0.800,0.900,0.900,0.900,0.900,1.000,
   1.100,1.100,1.400,1.700,2.000,2.000,2.000,2.000)

 > h=c(170,290,-130,-70,-185,-220,200,290,270,200,300,
   -30,650,150,500,920,450,500,500,960,500,850,800,1090)

 > plot(a,h,xlim=c(-1,3),ylim=c(-500,1500),
   xlab="Afstand",ylab="Hastighed",main="Hubbles Lov")

R.2.1 Tilføje punkter og linjer til en figur

Hvis man har lavet en figur med plot(), kan man tilføje nye punkter med points() eller nye linjer med lines(). I disse kommandoer kan man styre punktmarkøren, linjetypen og farven som beskrevet i forbindelse med plot. Prøv selv at køre nedenstående kommandoer.

R.2.2 Opdeling af plotvindue

Man kan dele et plotvindue op, således at der kan være flere delfigurer inden for vinduet. Ved hjælp af ordren par(mfrow=c(r,s)) angiver man, at vinduet skal deles op i rækker og søjler. Hver ny plotkommando vil rykke gennem de delvinduer, hvor man rykker gennem de søjler, før der skiftes til en ny række.
Hvis man inden for en struktur vil slå nogle af delvinduerne sammen, må man bruge en mere kompliceret struktur. I så fald skal man angive en matrix med tallene fra 1 til det antal delplots, man ønsker, og hvor de delvinduer med samme værdi i matricen slås sammen. Her er et eksempel:
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE))
Inde i layout defineres her en matrix, hvor første række er og anden række er (se afsnittet Matricer nedenfor). På denne måde deles plotvinduet op i to rækker, hele første række udgør en delfigur, hvorimod række to består af to delfigurer (nemlig nummer 2 og 3).
Når man er færdig med hele figuren og vil starte en ny figur, kan man enten lukke plotvinduet (husk at gemme først hvis I ønsker dette) eller give kommmandoen par(mfrow=c(1,1)).
Følgende program giver figur nedenfor.

 > a=c(0.032,0.034,0.214,0.263,0.275,0.275,0.450,0.500,
  0.500,0.630,0.800,0.900,0.900,0.900,0.900,1.000,
  1.100,1.100,1.400,1.700,2.000,2.000,2.000,2.000)

 > h=c(170,290,-130,-70,-185,-220,200,290,270,200,300,
  -30,650,150,500,920,450,500,500,960,500,850,800,1090)

 > layout(matrix(c(1,2,3,3), 2, 2, byrow = TRUE))

 > plot(a,h,xlab="Afstand",ylab="Hastighed",main="Data")
 > plot(a,h,xlab="Afstand",ylab="Hastighed",main="Regression")
 > abline(-40.7833,454.1580)

 > r=h-(-40.7833+454.1580*a)
 > plot(a,r,xlab="Afstand",ylab="Residualer")
 > abline(0,0)

Bemærk i ovenstående brugen af abline(a,b), der indsætter en linje, der skærer andenaksen i og har hældning Se beskrivelse nedenfor.

R.2.3 Gemme figur

Når en figur er lavet i R og bliver vist i plotvinduet, kan man gemme denne med kommandoen
dev.print(device=pdf,file="navn.pdf")
Hvis man ønsker figuren i jpeg-format i stedet, skal man blot erstatte pdf med jpeg i ovenstående kommando.

R.2.4 Abline og errorbar

I den nederste del af foregående figur blev der indsat en linje ved brug af abline. Denne kommando kan bruges på en af følgende måder:
abline(a,b) eller abline(h=a) eller abline(v=a)
Den første metode giver en linje, der skærer andenaksen i og har hældning den anden metode giver en vandret linje, der skærer andenaksen i og den sidste version giver en lodret linje, der skærer førsteaksen i
Man kan kontrollere linjetypen med lty og farven med col, som beskrevet ved plot ovenfor.
Ofte vil man i en figur vise usikkerheden på en måling eller vise et konfidensinterval for et parameterskøn i form af et lodret linjestykke med en "kant" i hver ende. Dette kaldes ofte errorbars. Hoveddelen af R har ikke en funktion, der er dedikeret til dette, men jeg har lavet en funktion til formålet, som ligger i filen Rfunktioner.txt. Når kommandoen source("Rfunktioner.txt") er udført, er funktionen til rådighed. Antag, at vi har en række punkter med førstekoordinat i og andenkoordinat i Ved hvert punkt ønsker vi et lodret linjestykke, der starter i L og slutter i Antag, at der allerede eksisterer et plot med punkterne, så kan de lodrette linjestykker tilføjes med kommandoen
errorbar(x,y,L,U)
ForegåendeNæste