r中的折线图动画

时间:2014-07-04 11:28:57

标签: r animation charts googlevis

我有1000周的每周行为路径(从1-52周开始)。

我希望从视觉上探索数据。

显然,如果我只绘制它看起来像是一个巨大的混乱 - 我想知道是否有一种简洁的方法来动画图表,这样就可以说它循环通过100个左右的帐户并逐个构建图表当我们移动到下一行时,每条新线都会获得明显的颜色然后变暗。基本上向某人展示了非常凌乱的图表。

以下是一些产生下面噪音图表的示例代码。

#####

library(ggplot2)

for (i in 1:100){
  mydf <- cbind(seq(1:52),paste('record_',i,sep=''),data.frame(rnorm(n=52, mean=10, sd=1)))
  names(mydf) <- c('week_number','record_id','spend')
  if (i==1) {
    mydfFull<-mydf
  } else {
    mydfFull <- rbind(mydf,mydfFull)
  }
}

# plot the sample
ggplot(data=mydfFull, aes(x=week_number, y=spend, group=record_id, colour=record_id)) + geom_line() + theme(legend.position="none")

#####

noisy plot

我想我希望逐行动画制作此图表的动画。

我发现有一个动画包,我也认为GoogleVis很有用。

任何有关什么是好方法的经验或建议?

1 个答案:

答案 0 :(得分:1)

动画包背后的一般思路可以在本例(编辑)

中进行说明
library(animation)
ani.options(interval=1.5,outdir=getwd())
cols <- rainbow(100)

saveHTML({
  for (i in 1:100){
    mydf <- cbind(seq(1:52),paste('record_',i,sep=''),data.frame(rnorm(n=52, mean=10, sd=1)))
    names(mydf) <- c('week_number','record_id','spend')

    if (i==1) {
      mydfFull<-mydf
      plot(mydf$week_number,mydf$spend,col=cols[1],type="l",main="",xaxt="n",ylab="",yaxt="n")
    }else{
      mydfFull <- rbind(mydf,mydfFull)
      plot(mydf$week_number,mydf$spend,col=cols[1],type="l",main="",xaxt="n",ylab="",yaxt="n")
      k <- 1;
      tapply(mydfFull$spend,factor(mydfFull$record_id),FUN=function(y) {lines(x=mydf$week_number,y=y,col=cols[k]); k<<-k+1 })

    }
  }
},img.name = "anim", title = "anim")

查看animation包以获取详细信息,以便调整代码以满足您的要求。