R绘制动态曲线

使用R语言绘制动画可以方便地观察到数据的变化行为。以之前Chrome在收集页面资料时使用的指数平滑算法为例,绘制一个在不同系数且目标值不断变化(应用场景不是页面访问统计)的情况下的曲线逼近行为。


首先要确保在R中安装了animation包, 如果需要保存成GIF动画,还需要安装ImageMagick。GIF的每一帧是基于一个plot操作的。


下面是一个示例代码:

library(animation)
ani.options(interval = 0.2)

#生成GIF
generateGIF<-function(coeff,loopingCount){
  layout(matrix(c(1, rep(2, 5)), 6, 1))
  saveGIF(generatePlots(coeff,loopingCount))
}

#动画绘制函数
generatePlots<-function(coeff,loopingCount){
  oopt = ani.options(interval = 0.2, nmax = loopingCount)
  
  #初始化绘图,并指定座标范围
  plot(0,0,xlim = c(0,ani.options("nmax")), ylim = c(0, 3500),col='blue',xlab="black:target value, red:actual value",ylab="Values")
  
  tgtValues<-c(0)
  newValues<-c(0)
  posValues<-c(0)
  
  oldValue=0

  for (i in 2:loopingCount) {
    tgtValues[i]=1000+rnorm(1,mean=500,sd=800)  
    newValues[i] = tgtValues[i]*coeff+newValues[i-1]*(1-coeff)
    posValues[i] = i
    
    plot(0,0,xlim = c(0,ani.options("nmax")), ylim = c(0, 3500),col='blue',xlab="black:target value, red:actual value",ylab="Values")
    points(posValues,tgtValues,col="black")
    points(posValues,newValues,col="red")
    lines(posValues,newValues,col="red")
    
    ani.pause() 
  }
}

*CSDN上的GIF都是死的,只能放到别处了!

效果图


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值