Graafikule punktide lisamine


Olemasolevale graafikule saab punkte lisada käsu points(x,y) abil. Täiendavate parameetritena võib muuta näiteks punkti suurust (normaalsuurus cex=1, cex=2 teeb 2 korda suuremad punktid jne); punkti kuju (pch=1..25, võimalik ka tähtede kasutamine pch="w" vms abil); punkti värvi (col="red" teeb punased punktid). Osade punktikujude valikute puhul (pch=21..25) saab määrata ka punkti sisemuse värvi (bg="yellow").

Esimene näide - isased, emased ja ekstreemumid

Lisame plot-käsuga tehtud graafikule punktid ja rõhutame kõige suuremat ja kõige väiksemat looma.
# Algandmete genereerimine
vanus=12+runif(110)*9;
sugu=rbinom(110, 1, 0.6)
pikkus=45+vanus*6-0.05*vanus^2+2*sugu+2*sugu*vanus+rnorm(110)*12

# Joonistame isaste sugu=1 loomade 
#   pikkuste ja vanuste hajuvusgraafiku.
# Selleks, et ka hiljem juurdelisatavad punktid 
#  graafikule jääksid, peame graafiku telgedel õiget
#  skaalat kasutama. Selleks siis käsk ylim=c(0,215).
plot(vanus[sugu==1],pikkus[sugu==1], type="p", 
	main="Emased ja isased", xlab="vanus", 
	ylab="pikkus", col="blue", ylim=c(0,215))

# Lisame juurde emasloomi (sugu=0) kirjeldavad punktid.
#   Teeme seda oraanzi värviga, col="orange".
points(vanus[sugu==0],pikkus[sugu==0], col="orange")

# Leiame suurima ja väikseima looma kirjenumbrid.
suurim=which(max(pikkus)==pikkus)
vaikseim=which(min(pikkus)==pikkus)

# Joonistame suurimat ja väikseimat looma 
# tähistavatele punktidele
# ringid ümber (cex=3 on üsna suur punkt, nagu ring juba!)
points(vanus[suurim],pikkus[suurim], cex=3, lwd=2)
points(vanus[vaikseim],pikkus[vaikseim], cex=3, lwd=2)

# lisame legendi
legend(18,75, c("emased","isased"), col=c("orange","blue"), pch=1)

   
 
 
 

Kolmas tunnus määrab punkti värvi

Sageli saab eri värve punkte graafikule joonistada üheainsa plot (või points) käsuga. Nimelt võib punktide joonistamise värv olla vektor - igale punktile oma värv!

# Algandmete genereerimine:
# longituud, latituud ja keskmine õhutemp (Bangodes)
long=runif(120)*360-180
lat=runif(120)*90
kuumus=lat+runif(120)*30

# joonistame punktid. Punkti sisemuse värvi määrab
#  bg=... (pch=21..25 korral värvitakse ka punkti sisemus!)
plot(long, lat, main="120 kohta põhjapoolkeral", type="p", 
      pch=22, col="green4", cex=3,
      bg=heat.colors(121)[1+as.integer(kuumus)])

   
 
 
 

Näiteid erikujulistest punktidest

Näide pärit points-käsu abiinfost (vaata ?points).
suurus <- 2 
ipch <- 1:(np <- 25+11); k <- floor(sqrt(np)); dd <- c(-1,1)/2
rx <- dd + range(ix <- (ipch-1) %/% k)
ry <- dd + range(iy <- 3 + (k-1)-(ipch-1) %% k)+c(-1,0)
pch <- as.list(ipch)
pch[25+1:11] <- as.list(c("*",".", "o","O","0","+","-",":","|","k","#"))

par(mar=c(0,0,0,0), bg="white")
plot(rx, ry, type="n", axes = FALSE, xlab = "", ylab = "")
abline(v = ix, h = iy, col = "lightgray", lty = "dotted")
for(i in 1:np) {
  pc <- pch[[i]]
  points(ix[i], iy[i], pch = pc, 
	col = "red", bg = "yellow", cex = suurus)
  text(ix[i] - .3, iy[i], pc, col = "brown", cex = 1.2*suurus/3)
}

arrows(3.3,2.3,ix[24],iy[24], length=0.1)
text(3.3,2.3,'bg="yellow"', adj=c(0,1))

arrows(2.5,2.2,ix[24]-0.11,iy[24]-0.11, length=0.1)
text(2.5,2.2,'col="red"', adj=c(1,1))

   


Vaata lisaks: