# # Legendid # # Viimati muudetud - 2. september 2005 # Koostanud: Märt Möls # # Millega png-pilte vaadata vaataja="C:\\Program Files\\Mozilla Firefox\\firefox.exe" # Kuhu pildfailid salvestada tee="F:\\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 - kolm legendi - jooned, punktid, jooned+punktid # # -------------------------------------------------------------------- algus("pilt100.png", 400, 300) x=runif(100) y=1+3*x-4*x^2+4*x^3+rnorm(100)*0.3 x2=runif(100) y2=1.2+4*x2-4*x2^2+4*x2^3+rnorm(100)*0.3 par(mar=c(3,3,2,2)) plot(x,y, ylim=c(0,6), pch=21, col="slateblue2", bg="aliceblue", cex=1.5, lwd=2, xlab="", ylab="") points(x2,y2, pch=c(21,21), col="red", bg="thistle1", cex=1.5) m1=lm(y~poly(x,2)) m2=lm(y2~poly(x2,2)) xabi=seq(0,1,0.01) y1abi=predict(m1, data.frame(x=xabi)) y2abi=predict(m2, data.frame(x2=xabi)) lines(xabi, y1abi, col="slateblue2", lwd=2) lines(xabi, y2abi, col="red", lwd=2) legend(0,6, legend=c("poisid","tüdrukud"), pch=21, col=c("slateblue2", "red"), pt.bg=c("aliceblue","thistle1"), pt.cex=2, pt.lwd=c(2,1)) legend(0.7,1.5, legend=c("poisid","tüdrukud"), title="jooned", lwd=2, col=c("slateblue2","red"), bty="n") par(xpd=NA) legend(0.8,6.5, legend=c("poisid","tüdrukud"), lwd=2, col=c("slateblue2","red"), pch=21,pt.bg=c("aliceblue","thistle1"), pt.cex=2, pt.lwd=c(2,1), bg="gray96") dev.off() system(teenimi2) # -------------------------------------------------------------------- # # Teine pilt - Värvitud pinnad # # -------------------------------------------------------------------- algus("pilt101.png", 400, 300) # Teeme legendi jaoks üles paremale ruumi par(mar=c(0,2,4,8)) x=c(3,5,10,8) # Joonistame kakukese. # Tavaliste märgendite asemel kirjutame seekord protsendid. pie(x, col=c("gold","gold3","indianred", "yellow"), labels=paste(round(100*x/sum(x)),"%")) # Legendi joonistame osaliselt väljapoole "joonistusala", # seepärast ka par(xpd=NA). par(xpd=NA) # Sobiva koha leidmiseks võid eeltööde ajal # kasutada axis(1) ja axis(2) käske, # samuti võib tarvitada legend(locator(1), ... ) legend(0.75,1.2, c("hamburgerid","mootoriõli","hanesuled","edasikindlustus"), fill=c("gold","gold3","indianred", "yellow"), title="Osakaalud", bg="seashell") # Lisame tiitli. Kuna legend oli otsapidi # joonistusalast väljas, kasutame teksti # joonise keskele saamiseks outer=TRUE parameetrit. # Ilma selleta tuleks tiitel ringi kohale, mitte # aga kogu joonise keskele. title("Kakuke", outer=TRUE, line=-2) dev.off() system(teenimi2) # -------------------------------------------------------------------- # # Kolmas pilt - viirutatud pinnad # # -------------------------------------------------------------------- n=55 grupp=rep(1:3, n) x=rbinom(n*3, 3, p=c(0.1, 0.4, 0.5)[grupp]) algus("pilt102.png", 400, 300) par(mar=c(4,4,1,0)) barplot(t(table(x,grupp)), beside=TRUE, density=c(10, 30, 15), angle=c(30, 120, 60), names=c("Tallinn","Tartu","Ida-Viru","Kihnu"), col=c("black","black","gray75")) legend("topright", c("rikkad","keskklass","vaesed"), density=c(10, 30, 15), angle=c(30, 120, 60), fill=c("black","black","gray75"), inset=0.05, cex=1.3) dev.off() system(teenimi2)