Legendi lisamine


Olemasolevale graafikule saab legendi lisada käsuga legend. Legendi paigutamiseks joonisele on kolm enamkasutatavat võimalust
  1. Paigutada legend ise visuaalselt sobivasse kohta:
    legend(locator(1), ... );
  2. Paigutada legend koordinaatidega etteantud kohta joonisel:
    legend(x=106, y=9, ... );
  3. legend paigutada etteantud serva või nurka:
    legend("topright", inset=0.01, ....)
    Lubatud positsioonid on "top", "bottom", "left", "right", "center","bottomleft", "topleft" jne. Kaugust valitud servast saab täpsemalt määratleda parameetri inset= abil.
Vaata täiendavaid näiteid käsuga
par(ask=TRUE); example(legend) .

Esimene näide - punktid ja jooned

Legendi lisatakse punktid, kui kuskil käsus esineb parameeter pch= (punkti kuju määrav parameeter). Punkti joone värvi saab muuta käsuga col=, seest teistvärvi punkti korral saab punkti sisemuse värvi muuta käsuga pt.gb=. Punkti suurust legendis saab muuta käsuga pt.cex=.
Joone tüüpi saab muuta parameetriga lty=, joone värvi col= parameetriga.
Punkt joonistatakse joone peale, kui merge=TRUE ja jooned ja punktid hoitakse eraldi, kui merge=FALSE.

# Algandmete tekitamine
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

# Joonistame hajuvusgraafikud
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)

# Hindame regressioonimudelid
m1=lm(y~poly(x,2))
m2=lm(y2~poly(x2,2))

# Joonistame regressioonikõverad graafikule
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)

# 1. legend - ainult punktid
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))

# 2. legend - jooned, ilma legendi ümbritseva
#	kastita (bty="n").
legend(0.7,1.5, legend=c("poisid","tüdrukud"), 
     title="jooned", lwd=2, col=c("slateblue2","red"),
      bty="n")

# 3. legend - osaliselt joonisest väljas (par(xpd=NA));
#    Legendi kasti sisemus toonitud halliks (bg="gray96")
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")

   
 
 
 

Teine näide - Värvitud pinnad legendis

Värviga kastike ilmub legendi, kui on lisatud parameeter fill=c("värv1","värv2", ... ).

# 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)


Normaalselt pole ringdiagrammile sellist legendi vaja - vaata järgmist näidet.
   
 
 
 

Viirutatud pinnad legendis

pinnad viirutatakse, kui antakse parameeter density=. Võib lisada ka viirutusnurka (kraadides) määrava parameetri angle=. Viirutamiseks kasutatavate joonte värvi saab muuta käsuga fill=.

# Algandmete genereerimine
n=55
grupp=rep(1:3, n)
x=rbinom(n*3, 3, p=c(0.1, 0.4, 0.5)[grupp])

# Joonistame graafiku 
barplot(table(grupp,x), 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)

Vaata täiendavaid näiteid barplot - käsu tarvis, kus legend automaatselt tekitatakse: barplot - näide.
   


Vaata lisaks: