Tutorial - Nadal 2021

Toni Rodon

Universitat Pompeu Fabra
www.tonirodon.cat

En molts països és comú enviar o donar un targetó per a celebrar un esdeveniment. Aniversaris, comiats, naixements… i, lògicament, targetons de nadal! Si, enlloc de comprar la postal de nadal, voleu fer-la amb R (quelcom que de ben segur a molts de vosaltres us ha passat pel cap), aquí teniu un breu tutorial que us guia en com plantejar-ho.

El tutorial genera quatre figures i una postal. És qüestió de cada usuari decidir quina imatge vol triar per enviar a amics, coneguts, familiars i saludats.

Arbre de nadal

Començarem fent un arbre de nadal. Aquesta part està basada en el codi que trobareu aquí.

# L'espai on dibuixarem l'arbre
plot(1:10,1:10,xlim=c(-5,5),ylim=c(0,10),type="n",xlab="",ylab="",xaxt="n",yaxt="n")
# Les banques i fulles
rect(-1,0,1,2,col="tan3",border="tan4",lwd=3)
polygon(c(-5,0,5),c(2,4,2),col="palegreen3",border="palegreen4",lwd=3)
polygon(c(-4,0,4),c(3.5,5.5,3.5),col="palegreen4",border="palegreen3",lwd=3)
polygon(c(-3,0,3),c(5,6.5,5),col="palegreen3",border="palegreen4",lwd=3)
polygon(c(-2,0,2),c(6.25,7.5,6.25),col="palegreen4",border="palegreen3",lwd=3)

#Afegir decoracions
points(x=runif(4,-5,5),y=rep(2,4),col=sample(c("blue","red"),size=4,replace=T),cex=3,pch=19)
points(x=runif(4,-4,4),y=rep(3.5,4),col=sample(c("blue","red"),size=4,replace=T),cex=3,pch=19)
points(x=runif(4,-3,3),y=rep(5,4),col=sample(c("blue","red"),size=4,replace=T),cex=3,pch=19)
points(x=runif(4,-2,2),y=rep(6.25,4),col=sample(c("blue","red"),size=4,replace=T),cex=3,pch=19)
points(0,7.5,pch=8,cex=5,col="gold",lwd=3)

#Afegir alguns regals i posar el títol
xPres = runif(10,-4.5,4.5)
xWidth = runif(10,0.1,0.5)
xHeight=runif(10,0,1)
for(i in 1:10){
  rect(xPres[i]-xWidth[i],0,xPres[i]+xWidth[i],xHeight[i],col=sample(c("blue","red"),size=1))
  rect(xPres[i]-0.2*xWidth[i],0,xPres[i]+0.2*xWidth[i],xHeight[i],col=sample(c("gold","grey87"),size=1))
}
mytitle = "Bon nadal"
mysubtitle = "I bon any nou!"
mtext(side=3, line=2,  cex=1.8, mytitle)
mtext(side=3, line=1, cex=1.4, mysubtitle)