Pindade värvimine


Olemaoleval graafikul osade piirkondade ülevärvimisel või viirutamisel on eelkõige abiks käsud rect ja polygon:
rect(x1, y1, x2, y2, ... )
polygon(x, y, ... )
Kus ... tähistab täiendavaid soovi korral lisatavaid argumente, nagu näiteks

Esimene näide - lihtsalt kujundid


# Avame graafikaakna, joonistame teljed
plot(NA,NA,xlab="",ylab="", main="", 
	xlim=c(0,5), ylim=c(0,4))
# lisame abijooned
grid()

# joonistame ristküliku
rect(0.5,2.5, 3, 3.5, density=14)
# joonistame kolmnurga
polygon(c(2,4,5), c(0,3,1), 
	col="orange", border="chocolate4", lwd=3)

# teeme poolringi joonistamiseks vajalikud arvutused
nurk=seq(3*pi/2,5*pi/2,length=30)
x=2+sin(nurk)
y=1+cos(nurk)
# joonistame poolringi
polygon(x,y, col="gold", border="darkgoldenrod4", lwd=4)
   
 
 
 

Teine näide - graafiku alune pindala



# Teeme graafiku joonistamiseks vajalikud arvutused
x=seq(-4,4,0.05)
y=dnorm(x, mean=0, sd=1)

# Joonistame funktsioonigraafiku,
# antud juhul standardse normaaljaotuse tihedusfunktsioon
plot(x,y, type="l", xlim=c(-3,3), xaxs="i",yaxs="i", 
   main="standardse normaaljaotuse \n tihedusfunktsioon", 
   ylab="f(x)", ylim=c(0,0.45))

# Arvutame funktsiooni väärtused meid huvitavas piirkonnas
xala=seq(-1.96,1.96, length=60)
yala=dnorm(xala, mean=0, sd=1)

# Võõpame funktsiooni graafiku aluse pinna viiruliseks
polygon(c(xala[1],xala,xala[60]), c(0,yala,0), 
			   density=20, angle=25)

# Teeme valge ruudu lisatava kirja tarvis
rect(-0.5, 0.11, 0.5, 0.17, col="white", border="white")
# Lisame selgitava kirja
text(0, 0.14, "95%", adj=c(0.5,0.5))

   
 
 
 

Kolmas näide - viirutuste kasutamine mujal

Sarnaseid täiendavaid argumente saab kasutada ka teiste pindade värvimist lubavate joonistamiskäskude juures. Alljärgnevalt näide histogrammi joonistamisest.

x=rnorm(80)
hist(x, main="Histogramm", 
  density=c(12,30), angle=seq(30,180, 20))

   
 
 
 

Legendi lisamine


x=seq(0,100,0.5)
y1=dnorm(x, mean=25, sd=6)
y2=dnorm(x, mean=55, sd=10)

plot(x,y1, type="l", main="Haiged ja terved", 
	xlim=c(0,100), ylab="tihedus")
polygon(c(0,x,100),c(0,y1,0), 
		density=20, angle=30)
polygon(c(0,x,100),c(0,y2,0), 
		density=20, angle=130)

legend(65,0.06, c("haiged","terved"), 
	density=c(20,20), angle=c(30,130), 
	title="legend")
   
 
 
 

Erinevaid viirutustihedusi


x=rep(1, 10)

tihedus=c(5,10,15,20,25,30,40,50,60,100)
names(x)=tihedus

par(mar=c(4,0.5,1,0.5))
barplot(x, density=tihedus, ylab="", yaxt="n")

   


Programm, mis genereeris pildid siia leheküljele.