Esimene näide - automaatsetest telgedest lahtisaamineSoovides lisada graafikule eripärast telge, tuleb esmalt lahti saada automaatselt pildile lisatavatest telgedest. Selleks on kaks võimalust: axes=FALSE parameetri kasutamine graafiku joonistamisel või xaxt="n", yaxt="n" parameetrite tarvitamine.# Kasutatavate andmete tekitamine tunnusX=rnorm(100) tunnusY=rnorm(100)+0.5*tunnusX # jagame ekraani kuue minigraafiku vahel, # muudame ka veidi telgede jaoks jäetavat # vaba ruumi. par(mfrow=c(3,2), mar=c(4,4,4,1)) # Joonistame graafikud plot(tunnusX,tunnusY, main="Standard") plot(tunnusX,tunnusY, bty="n", main='bty="n"') plot(tunnusX,tunnusY, las=2, main='las=2') plot(tunnusX,tunnusY, axes=FALSE, main="axes=FALSE") plot(tunnusX,tunnusY, las=3, main='las=3') plot(tunnusX,tunnusY, xaxt="n", yaxt="n", xlab="", ylab="", main='xaxt="n", yaxt="n", \n xlab="", ylab=""') |
|
| |
Teine näide - jaotismärkide muutmineTelje lisamisel axis-käsuga on võimalik öelda, kuhu tõmmata jaotismärgid (tickmarks). Pane lisaks tähele joonise külgede nummerdamist:axis(1, ... - joonistab x-telje joonise alla; axis(2, ... - joonistab y-telje joonisest vasakule; axis(3, ... - joonistab x-telje joonise kohale; axis(4, ... - joonistab y-telje joonisest paremale. # Takitame algandmed; tunnusX=rnorm(100) tunnusY=4+rnorm(100)+0.5*tunnusX # Joonistame graafiku, ilma telgedeta (axes=FALSE!!!) plot(tunnusX, sqrt(tunnusY), pch=16, col="firebrick4", axes=FALSE, xlim=c(-2,2), ylim=c(0,3), main="Kuidas muuta jaotismärke", ylab="") # lisame teljed alla (1) ja paremale (4): axis(1, at=c(-2,-1,0.5,1,2), labels=c(-2,0,"pisike",1,"suur"), cex.axis=0.75) axis(4, at=sqrt(seq(0,9,1)) , labels=seq(0,9,1), cex.axis=0.7, las=2, col="darkred", col.axis="red") # Lisame Y-teljele tähistuse # (2.5 rida graafiku servast eemale): mtext("tunnus Y", 4, line=2.5) # Tõmbame abijooned ebatüüpiliste jaotusmärkide järgi: abline(v=c(-2,-1,0.5,1,2), h=sqrt(seq(0,9,1)), lty=2, col="gray90") |
|
| |
Ühised teljedVahel soovime, et mitu graafikut kasutaksid samu telgi. Alljärgnevalt väike näide sellest, kuidas sellist mõistlikku soovi saaks täita.# Jagame ekraani 9 graafiku jaoks, iga graafiku # servast tühjaks jäetava ala teeme väikseks (mar=) # kuid kõigi graafikute ümber jätame vaba ruumi (oma=) par(mfrow=c(3,3), mar=c(0.5,0.5,0.5,0.5), oma=c(3,3,6,3)) # Joonistame tsüklis graafikud x=seq(0.001,0.999,0.001) for (shape1 in c(0.5, 1, 4)){ for (shape2 in c(0.5, 1, 4)){ y=dbeta(x,shape1,shape2) plot(x,y, type="l", xlim=c(0,1), ylim=c(0,6), lwd=2, xaxt="n", yaxt="n") polygon(c(0.001,x,0.999,0),c(0,y,0,0), type="l", density=25) # Teljed joonistame joonise väliskülgedele (outer=TRUE)!! axis(1,c(0, 0.25,0.5,0.75,1), outer=TRUE) axis(2,0:6, outer=TRUE) }} # Lisame selgitavaid tekste mtext("shape2 = 0.5", 3, outer=TRUE, at=0.15) mtext("shape2 = 1", 3, outer=TRUE, at=0.5) mtext("shape2 = 4", 3, outer=TRUE, at=0.85) mtext("shape1 = 4", 4, outer=TRUE, at=0.15) mtext("shape1 = 1", 4, outer=TRUE, at=0.5) mtext("shape1 = 0.5", 4, outer=TRUE, at=0.85) # Lisame suure tiitli kõigile joonistele (outer=TRUE) title("Beetajaotuse tihedusfunktsioone", outer=TRUE, cex.main=1.5) |
|
| |
Telgedele ruumi jätmine (algus)Joonisele telgesid lisades või eemaldades tekib sageli vajadus kas vähendada või suurendada joonise äärealadele jäetavat tühja ruumi. Seda on võimalik teha kas par(mar=c(alla, vasakule, üles, paremale)) käsu abil (ühe joonise korral) või par(oma=c(alla, vasakule, üles, paremale)) käsku tarvitades (kui jooniseid on palju ning soovime jätta vaba ruumi graafikute klumbi servadesse. |
|
| |
Telgedele ruumi jätmine - näide# algandmete genereerimine; x1=runif(100,0,10); x2=runif(30,6,10) y1=0.5*x1+rnorm(100)+0.12*x1*x1; y2=-10+(x2-6)+(x2-6)^2+rnorm(30) x=c(x1,x2); y=c(y1,y2) varv=rep(1:2,c(100,30)) # 2x2=4 graafikut, osad neist üsna tihedalt koos. # oma= käsku kasutades jätame ruumi ühise tiitli tarvis. par(mfrow=c(2,2), mar=c(0,4,3,0), oma=c(0,0,3,0)) # Esimene graafik (ülemine vasakpoolne) plot(x,y, pch=21, col=c("antiquewhite4","darkgoldenrod")[varv], bg=c("antiquewhite","darkgoldenrod1")[varv], lwd=2, cex=1.75, xlim=c(0,10), ylim=c(-5,20), xaxt="n", main="Algpilt") # Teine graafik (ülemine parempoolne) par(mar=c(0,0,3,4)) plot(10-x,y, pch=21, col=c("antiquewhite4","darkgoldenrod")[varv], bg=c("antiquewhite","darkgoldenrod1")[varv], lwd=2, cex=1.75, xlim=c(0,10), ylim=c(-5,20), yaxt="n", xaxt="n", main="Peegeldus") # Kolmas graafik (alumine vasakpoolne) par(mar=c(4,4,0,0)) plot(x,15-y, pch=21, col=c("antiquewhite4","darkgoldenrod")[varv], bg=c("antiquewhite","darkgoldenrod1")[varv], lwd=2, cex=1.75, xlim=c(0,10), ylim=c(-5,20), yaxt="n") # Vajab eraldi axis käsku, sest y-telje numbrid tagurpidi! axis(2, seq(-5,20,5), labels=15-seq(-5,20,5)) # Alumine parempoolne par(mar=c(4,0,0,4)) plot(10-x,15-y, pch=21, col=c("antiquewhite4","darkgoldenrod")[varv], bg=c("antiquewhite","darkgoldenrod1")[varv], lwd=2, cex=1.75, xlim=c(0,10), ylim=c(-5,20), yaxt="n", xaxt="n") axis(1, seq(0,10,2), labels=10-seq(0,10,2)) # Lisame mõned ilustavad tekstid! mtext("Peegeldus",4) title(main="Peegeldusi", outer=TRUE) |