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