您将使用哪些选项(和包)逐步绘制计算结果?
想象一下,我想绘制一个持续很长时间的计算结果,我不想等到最后看到一些结果。 绘制每个单点并不是一个好主意,因为每次启动绘图命令都会非常慢。 我将绘制每个N点(将它们保存在矢量上)。
例如,如果我使用Fibonacci系列,在两个嵌套循环中打破循环,以便每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值。 也许最好使用其他更好的图形包?
答案 0 :(得分: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])
}
}