Graafiku paiknemise täpne määramine (plt-parameeter)

Graafiku joonistamisel on võimalik täpselt määratleda, kuhu just täpselt ekraanil antud joonis peaks minema. Seda saab teha plt-graafikaparameetrit:
par(plt=c(xmin, xmax, ymin, ymax))
kus xmin ja xmax on joonise paiknemine x-telje suunal, antuna ühikutes 0...1. Seega xmin=0.5, xmax=1 annaks pildi paiknemise alates poolest ekraanist kuni ekraani lõpuni. Samuti on lugu y-telje ühikutega - ka need peavad jääma vahemikku nullist üheni.

Näide - hajuvusgraafik, punktide asemel ringdiagrammid



# Algandmete genereerimine - 30 objekti, 4 tunnust - x, y, ringi suurus (size) ja 
# ringdiagrammi joonistamisel kasutatav prop:

n=30
z=rexp(n, 0.5); size=0.05*(0.8+1.2*z/max(z))
x=rnorm(n); x2=0.05+max(size)+(1-max(size)*2.1)*(x-min(x))/(max(x)-min(x))
y=2*x+rnorm(n); y2=0.05+max(size)+(1-max(size)*2.1)*(y-min(y))/(max(y)-min(y))
prop=runif(n)

windows(width=600, height=450)

par(mar=c(5,5,1,1))
plot(x,y, xlim=c(-3,3), ylim=c(-6,6))

# Salvestame algse pildi parameetrid, et saaksime graafikuid hiljem
# lisada telgedel õigetesse kohtadesse
v1=par("plt")
v2=par("usr")

# Vajame ka ühikuid teisendavat funktsiooni, mis konverteeriks 0..1 ja -3..3 ühikute vahel:
teisenda=function(x,y,v1,v2){
xuus=v1[1]+(v1[2]-v1[1])*(x-v2[1])/(v2[2]-v2[1])
yuus=v1[3]+(v1[4]-v1[3])*(y-v2[3])/(v2[4]-v2[3])
return(c(xuus,yuus))
}

# Joonistame ringdiagrammid:
for (i in 1:n){
  par(xpd=NA, mar=c(0,0,0,0), new=TRUE)
  ax=teisenda(x[i],y[i], v1,v2)[1]
  ay=teisenda(x[i],y[i],v1,v2 )[2]
  abi=c(ax-size[i],ax+size[i],ay-size[i],ay+size[i])
  if (min(abi)>0 & max(abi)<1) {
  	par(plt=abi)
	pie(c(prop[i],1-prop[i]), labels=NA, col=c("darkred","gold")) }
}