R中的动态跟踪图

时间:2015-03-20 04:38:28

标签: r dynamic plot

我想生成一个动态图,它绘制了一个新点,但保留了已经跟踪过的点。以下代码模拟了要求。

seq_x<-seq(1,10)
seq_y<-function(y)
{
z<-y^2+y+1
return (c(z))
}
yrange<-seq_y(1)
yrange[2]<-seq_y(length(seq_x))
for(i in 1:length(seq_x) )
{
xdata<-seq_x[1:i]
ydata<-seq_y(xdata)
plot(xdata,ydata,xlim=range(seq_x),ylim=range(yrange),type="o",col="royalblue",plot.first=grid())
Sys.sleep(1)
}

但每次循环执行时,都会生成一个新的图。 情节明显闪烁(因为循环中的plot调用) 如何在同一个绘图中为跟踪绘制新点,以便跟踪在同一窗口中显示

1 个答案:

答案 0 :(得分:0)

由于plot.default()每次在循环之前初始化它并在之后使用points()添加点,因此会生成一个新图形。

这符合我认为您的需要:

seq_x<-seq(1,10)
f_y<-function(y){
  z<-y^2+y+1
  return (c(z))
}
seq_y<-f_y(seq_x)
plot(x=seq_x[1],y = seq_y[1], xlim = range(seq_x),ylim=range(seq_y),
     xlab = "x",ylab = "y")
for(i in 1:length(seq_x) ){
  points(seq_x[i],seq_y[i],type="o",col="black")
  Sys.sleep(1)
}