Benjamin Schlegel

 

Blog

Frohes neues Jahr - Feuerwerk in R

31. Dezember 2016

Mit R kann man nicht nur Statistik und Weihnachtsbäume darstellen, man kann auch Feuerwerke erscheinen lassen. Mit einem Loop und einigen Zufallsvariablen erscheinen endlos viele Feuerwerke.


library(ggplot2)
rm(list = ls())
t1 = (1:60)

# while(T){ # for an endless loop
for(i in 1:100){ # 5 min
  size1 = runif(1, 1.5, 4)
  r1_center = c(runif(1,-5,5),runif(1,7,12))
  rocket1 = data.frame(x1 = rep(r1_center[1], length(t1)) 
                       , x2 = size1*cos(t1)  + r1_center[1]
                       , y1 = rep(r1_center[2], length(t1))
                       , y2 = size1*sin(t1) + r1_center[2]
  ) 
  col = rgb(runif(1),runif(1),runif(1))
  
  # Plot fireworks
  print(ggplot() +
    theme(panel.background = element_rect(fill = '#252525', colour = '#252525'),
          panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
          axis.line=element_blank(),axis.text.x=element_blank(),
          axis.text.y=element_blank(),axis.ticks=element_blank(),
          axis.title.x=element_blank(),
          axis.title.y=element_blank(),legend.position="none") + 
    xlim(-10,10) + ylim(0,20) +
    geom_point(aes(x = x2, y = y2), data = rocket1, shape = 4, colour = col)+
    geom_curve(linetype="dashed",aes(x = x1, y = y1, xend = x2, yend = y2 ), 
      curvature = 0.1, data = rocket1, colour = col))
    Sys.sleep(3) 
}
ggplot Feuerwerk

Some of the code I took from Fireworks (in R).