# # Muude elementide lisamine - nooled, taustajooned jne; # # Viimati muudetud - 3. september 2007 # Koostanud: Märt Möls # # Millega png-pilte vaadata vaataja="C:\\Program Files\\Mozilla Firefox\\firefox.exe" # Kuhu pildfailid salvestada tee="C:\\kursus\\kursus\\Kursus\\R\\temp\\lisamine\\" algus=function(pilt, xs, ys){ assign("teenimi", paste(tee,pilt,sep=""), env=.GlobalEnv) assign("teenimi2", paste('"',vaataja,'" ',tee,pilt,sep=""), env=.GlobalEnv) png(filename = teenimi, width = xs, height = ys, pointsize = 12, bg = "white") } # --------------------------------------------------- # # Esimene pilt -- Erindile tähelepanu juhtimine # # --------------------------------------------------- algus("pilt130.png", 400, 300) # Algandmete genereerimine x=runif(60,0,12) y=2*x-0.04*x**2+rnorm(60, sd=x**0.3) x=c(x, 11) y=c(y, 7) plot(x,y, main="Erind", ylim=c(0,20)) arrows(8, 4, 10.8, 6.9) text(8,4, "Veider\n vaatlus", adj=c(1, 0.5)) dev.off() system(teenimi2) # --------------------------------------------------- # # Teine pilt -- Teoreetiline ja Empiiriline jaotusfunktsioon # # --------------------------------------------------- algus("pilt131.png", 400, 300) # Algandmete genereerimine x1=seq(-3,4, length=100) y1=pnorm(x1) tunnus=c(rnorm(30, mean=-1, sd=0.5), rnorm(15, mean=1, sd=0.5)) plot(ecdf(tunnus), xlim=c(-3,4), ylim=c(0,1), verticals=T, do.points=F, main="Emp. ja teoreetiline jaotusfn") lines(x1,y1, col="gray50", lwd=2) abi=abs(ecdf(tunnus)(x1)-y1) x0=which(abi==max(abi)) arrows(x1[x0], ecdf(tunnus)(x1[x0]), x1[x0], y1[x0], code=3, angle=15, col="darkred", length=0.1) text(x1[x0], (ecdf(tunnus)(x1[x0])+y1[x0])/2, " Maksimaalne erinevus", col="darkred", adj=c(0, 0.5)) dev.off() system(teenimi2) # --------------------------------------------------- # # Kolmas pilt -- usalduspiirid # # --------------------------------------------------- algus("pilt132.png", 400, 300) # Algandmete genereerimine x=rbinom(200, 2, 0.3) y=rbinom(200, 1, p=0.1+0.2*x) # Kui y=0, siis õnnelik, kui y=1 siis õnnetu # table(x,y) a=barplot(prop.table(table(y,x),2)[1,], ylim=c(0,1), main="95%-Usaldusintervall", ylab="Tõenäosus", las=2) lim1 = binom.test(table(y[x==0]))$conf.int lim2 = binom.test(table(y[x==1]))$conf.int lim3 = binom.test(table(y[x==2]))$conf.int arrows(a, c(lim1[1], lim2[1], lim3[1]), a, c(lim1[2], lim2[2], lim3[2]), code=3, angle=90, col="gray40", lwd=2) dev.off() system(teenimi2) # --------------------------------------------------- # # Neljas pilt -- Taustajooned 1 (punktidel) # # --------------------------------------------------- algus("pilt133.png", 400, 300) x=rexp(200, rate=0.10) y=2*x+rnorm(200, sd=x**0.6) plot(x,y, main="grid()") grid(col="gray50") dev.off() system(teenimi2) algus("pilt134.png", 400, 300) x=rexp(50, rate=0.10) y=2*x-0.017*x*x+rnorm(50, sd=x**0.6) plot(x,y, main="Punktid joonte peal") grid(lty=3, col="orange") points(x,y, pch=21, col="green4", bg="green", lwd=2, cex=1.5) dev.off() system(teenimi2) algus("pilt135.png", 400, 300) x=rbinom(100, 3, 0.23) barplot(table(x), col=c("gold2", "darkgoldenrod", "yellowgreen", "lightgoldenrod4"), las=1, main="abline(h=...)") abline(h=seq(0,50,10), col="gray50",lty=2) barplot(table(x), col=c("gold2", "darkgoldenrod", "yellowgreen", "lightgoldenrod4"), add=T, las=1) dev.off() system(teenimi2) # --------------------------------------------------- # # rug - funktsiooni näited # # --------------------------------------------------- algus("pilt136.png", 400, 300) source(url("http://www.ms.ut.ee/mart/R/varvidfun.txt")) x=c(rexp(40, rate=0.2), rnorm(15, mean=7)) hist(x, col=varvid(c("skyblue","blue4"),8), main="rug(x)") rug(x) dev.off() system(teenimi2) algus("pilt137.png", 400, 300) x=c(0.6+rexp(40, rate=0.2), rnorm(15, mean=7)) plot(density(x), main="rug(x)", col="gray25", lwd=2, xlab="x",ylab="f(x)") rug(x) dev.off() system(teenimi2) # --------------------------------------------------- # # Joonise lisamine joonisele ( plt= ) # # --------------------------------------------------- algus("pilt138.png", 400, 300) Linn=rep(c("Tallinn","Tartu","Pärnu", "Narva"), c(80+140+30, 30+90+10, 30+40+25, 5+40+40)) Kvaliteet=rep(c("Hea","Keskmine","Kehv","Hea","Keskmine","Kehv","Hea","Keskmine","Kehv","Hea","Keskmine","Kehv"), c(80, 140, 30, 30, 90, 10, 30, 40, 25, 5, 40, 40)) Linn=factor(Linn, levels=c("Tallinn","Tartu","Pärnu", "Narva")) Kvaliteet=factor(Kvaliteet, levels=c("Hea","Keskmine","Kehv")) barplot(table(Kvaliteet, Linn), col=c("white", "lightblue", "mistyrose"), main="Katuste kvaliteet") par(plt=c(0.4, 1, 0.55, 0.8), new=T) pie(table(Kvaliteet), cex=0.8)
par(plt=c(0, 1, 0, 1)) dev.off() system(teenimi2)