**Wiekvoet**, and kindly contributed to R-bloggers)

Based on The DO loop, since I wanted a fractal Christmas tree and there is no point in inventing what has been made already. Besides, this is not the first time this year that I used R to do what has been done in SAS.

### Code

# http://blogs.sas.com/content/iml/2012/12/14/a-fractal-christmas-tree/

# Each row is a 2×2 linear transformation

# Christmas tree

L <- matrix(

c(0.03, 0, 0 , 0.1,

0.85, 0.00, 0.00, 0.85,

0.8, 0.00, 0.00, 0.8,

0.2, -0.08, 0.15, 0.22,

-0.2, 0.08, 0.15, 0.22,

0.25, -0.1, 0.12, 0.25,

-0.2, 0.1, 0.12, 0.2),

nrow=4)

# … and each row is a translation vector

B <- matrix(

c(0, 0,

0, 1.5,

0, 1.5,

0, 0.85,

0, 0.85,

0, 0.3,

0, 0.4),

nrow=2)

prob = c(0.02, 0.6,.08, 0.07, 0.07, 0.07, 0.07)

# Iterate the discrete stochastic map

N = 1e5 #5 # number of iterations

x = matrix(NA,nrow=2,ncol=N)

x[,1] = c(0,2) # initial point

k <- sample(1:7,N,prob,replace=TRUE) # values 1-7

for (i in 2:N)

x[,i] = crossprod(matrix(L[,k[i]],nrow=2),x[,i-1]) + B[,k[i]] # iterate

# Plot the iteration history

png(‘card.png’)

par(bg=’darkblue’,mar=rep(0,4))

plot(x=x[1,],y=x[2,],

col=grep(‘green’,colors(),value=TRUE),

axes=FALSE,

cex=.1,

xlab=”,

ylab=” )#,pch=’.’)

bals <- sample(N,20)

points(x=x[1,bals],y=x[2,bals]-.1,

col=c(‘red’,’blue’,’yellow’,’orange’),

cex=2,

pch=19

)

text(x=-.7,y=8,

labels=’Merry’,

adj=c(.5,.5),

srt=45,

vfont=c(‘script’,’plain’),

cex=3,

col=’gold’

)

text(x=0.7,y=8,

labels=’Christmas’,

adj=c(.5,.5),

srt=-45,

vfont=c(‘script’,’plain’),

cex=3,

col=’gold’

)

**leave a comment**for the author, please follow the link and comment on their blog:

**Wiekvoet**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...