2

我正在尝试使用动画包在地图上生成“不断变化的”点图。地图由 shapefile 生成(来自 readShapeSpatial/readShapeLines 函数)。

问题是当它被绘制在一个 for 循环中时,结果是相加的,而理想的结果是让它进化。

有没有使用我缺少的 par() 的方法?

我的问题是:有没有办法只清除从点函数绘制的点而不清除整个图形,从而不必重新绘制 shapefile?

如果有人想查看代码:

# plotting underlying map
newyork <- readShapeSpatial('nycpolygon.shp')
routes <- readShapeLines('nyc.shp')
par(bg="grey25")
plot(newyork, lwd=2, col ="lightgray")
plot(routes,add=TRUE,lwd=0.1,col="lightslategrey")

# plotting points and save to GIF
ani.options(interval=.05)
saveGIF({
  par(bg="grey25")
  # Begin loop
  for (i in 13:44){
    infile <-paste("Week",i,".csv",sep='')
    mydata <-read.csv(file = infile, header = TRUE, sep=",")
    plotvar <- Var$Para
    nclr <- 4
    plotclr <-brewer.pal(nclr,"RdPu")
    class<- classIntervals(plotvar,nclr,style = "pretty")
    colcode <- findColours(class,plotclr)
    points(Var$Lon,Var$Lat,col=colcode)
  }
})
4

1 回答 1

0

如果您可以接受墨水的残留阴影或光晕,您可以在背景选择中使用颜色 =“白色”或 == 进行过度绘图。我们无法访问您的形状文件,但您可以通过添加以下行来尝试:

points(Var$Lon, Var$Lat, col="grey25")

它可能会在其他先前绘制的图形或边界中留下空白,因为它绝对不是面向对象的。lattice 和 ggplot2 图形模型更加面向对象,因此如果您想发布一个可重现的示例,这可能是“前进”的替代路径。我似乎记得 rgl 包在其重复中具有动画选项。

于 2012-06-27T16:32:02.597 回答