(This article was first published on Probability and statistics blog » r, and kindly contributed to R-bloggers)
A couple days ago I noticed a fun piece of R code by Allan Roberts, which lets you create a digital snowflake by cutting out virtual triangles. Go give it a try. Roberts inspired me to create a whole night sky of snowflakes. I tried to make the snowfall look as organic as possible. There are lots of options to adjust. Here’s the code, have fun and Happy Holidays!
# Code by Matt Asher for statisticsblog.com # Feel free to modify and redistribute # How many flakes do you want to fall? flakes = 100 # Width and height of your space width = 800 height = 600 # Initial wind wind = 0 # Setup the background of the plot and margins par(bg = "black") par(oma=c(0,0,0,0)) par(mar=c(0,0,0,0)) plot(0, 0, col="black", pch=".", xlim=c(0,width), ylim=c(0,height), axes=F) for(i in 1:flakes) { startY = height startX = runif(1,1,width) xPos = startX yPos = startY for(j in 1:height) { # Optional drift in wind wind = wind + rcauchy(1,0,.05) # Update snowflake position xPos = xPos + rnorm(1,.1,1.5) yPos = yPos - runif(1,4,20) # Are we in the space, if so display it if(xPos > 0 && xPos <= width && yPos > 0 && yPos <= height) { points(round(xPos), round(yPos), col="white", pch=8) # System dely, slows down the flakes Sys.sleep(0.1) } } }
To leave a comment for the author, please follow the link and comment on his blog: Probability and statistics blog » r.
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series,ecdf, trading) and more...

Zero Inflated Models and Generalized Linear Mixed Models with R.
Zuur, Saveliev, Ieno (2012).