Joonisele täiendamisruumi jätmine (mar=, xpd=NA)

Seda, kui palju joonise servadesse vaba ruumi jätta, saab määrata graafikaparameetri mar (margin) abil: mar=c(alla, vasakule, üles, paremale). Näiteks järgmine käsk jätab graafiku alla palju vaba ruumi:

par(mar=c(12, 3, 3, 1))
plot(rnorm(100))

Enamasti ei lase R joonistada väljapoole telgedega piiratud ala – kui mõni punkt peakski sattuma väljapoole „joonistusala“, siis seda punkti lihtsalt ei joonistata. Sellist teguviisi saab aga muuta graafikaparameetreid muutes. Peale käsu

par(xpd=NA)

andmist nõustub R joonistatama (ja ka tekste lisama) väljapoole telgedega piiratud joonise piirkonda.

Näide - logistilise regressioonmudeli illustreerimine



# Algandmete genereerimine
tootlus=rep(6:12, 8)
onn=rbinom(7*8, 1, (tootlus-5)/8)

# Hindame logistilise regressiooni mudeli
mudel=glm(onn~tootlus, family=binomial)

# Kasutades mudelit arvutame prognoosid
x1=seq(6,12,0.1)
x2=c(seq(4,16,0.1))
y1=predict(mudel, data.frame(tootlus=x1), type="response")
y2=predict(mudel, data.frame(tootlus=x2), type="response")


# Asume joonist joonistama
windows(width=6, height=4.5)

# Jätame joonise kohale vaba ruumi, hetkel lülitame ka pildist väljapoole jäävate
# joonte ja punktide "äralõikamise" reziimi sisse (xpd=FALSE)

par(mar=c(5,5,7,2)+0.1, xpd=FALSE)


# Teeme põhijoonise

plot(x1,y1*100, type="l", xlim=c(4,16), ylim=c(0,100), bty="n", xlab="Pingo-Pango concentration (mg)",ylab="Probability of success (%)", las=1, yaxs="i",lwd=2)

# Lisame punktiirjoone piirkonda, kus andmed ei võimalda midagi kindlalt arvata
lines(x2,100*y2, lty=2, lwd=2)

# Nüüd lubame joonistada ka väljapoole joonistuspiirkonda:
par(xpd=NA)

koht=120
lines(c(4,16),c(koht,koht))
text(15.7,koht+2,"Succesful", adj=c(1,0), cex=1)
text(15.7,koht-2,"Unsuccesful", adj=c(1,1), cex=1)

aa=table(tootlus[onn==1])
xx=as.numeric(names(aa))
a=function(x){return(seq(1,x))}
yy=c(lapply(aa,a), recursive=TRUE)
points(rep(xx,aa),yy*1.5+koht, pch=20)

aa=table(tootlus[onn==0])
xx=as.numeric(names(aa))
yy=c(lapply(aa,a), recursive=TRUE)
points(rep(xx,aa),-yy*1.5+koht, pch=20) 

Programm, mis genereeris siin leheküljel olevad pildid