3

您将使用哪些选项(和包)来逐步绘制计算结果?

想象一下,我想绘制一个持续很长时间的计算结果,我不想等到最后才能看到一些结果。绘制每个点并不是一个好主意,因为每次启动 plot 命令都会非常慢。我将改为绘制每 N 个点(将它们保存在向量上)。

例如,如果我用斐波那契数列来做,将循环分成两个嵌套循环,以便每 10 次迭代绘制一次结果:

fibo=rep(0,112);fibo[1]=0;fibo[2]=1;
plot(fibo)              #to initialize 
for(ii in 0:10) {
  for(jj in 0:9) {
    fibo[ii*10+jj+3]=fibo[ii*10+jj+2]+fibo[ii*10+jj+1];
  }
plot(fibo)
}

但它不会保留上一次迭代的图表。我该怎么做?这不是一个很好的例子,因为数字增长得太快了。并且绘图初始化事先不知道最大值 y 值。也许使用其他更好的图形包会更好?

4

1 回答 1

3

这是一个简单的示例,说明如何通过设置应绘制的点并仅points在满足此条件时添加:

# set the frequency with which to plot points
plotfreq <- 10

# set the x and y limits of the graph
x.limits <- c(1,100)
y.limits <- c(0,100)

# initialise a vector and open a plot
result <- vector(mode="numeric",length=100)
plot(result,ylim=y.limits,xlim=x.limits,type="n")

# do the plotting
plot.iterations <- seq(plotfreq,length(result),by=plotfreq)
for (i in seq_along(result)) {
  result[i] <- result[i] + i

  # only plot if the data is at the specified interval
  if (i %in% plot.iterations) {
    points(i,result[i])
  }

}
于 2013-03-26T02:17:38.577 回答