2012-06-27 57 views
2

我正在嘗試使用動畫包在地圖上生成一個「不斷變化」的點圖。該地圖由shapefile生成(來自readShapeSpatial/readShapeLines函數)。清除R中的繪製點

問題是當它在for循環中繪製時,結果是可加的,而理想的結果是讓它演變。

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

我的問題是:有沒有辦法來清除剛剛從點功能 ploted點,因此不清除不必regraph的形狀文件的完整數字?

萬一有人希望看到代碼:

# 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) 
    } 
}) 
+0

基本圖形是紙筆模型。所以你將不得不重新繪製新的整個情節。 – James

回答

0

如果你能接受油墨的殘留陰影或暈,你就可以通過積顏色=「白色」或==到你的背景選擇。我們無法訪問您的形文件,但你可以通過加入這一行試試:

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

可能留有空隙在其他以前繪製的人物或邊界,因爲它肯定不是面向對象的。 lattice和ggplot2圖形模型更加面向對象,所以如果你想發佈一個可重現的例子,那可能是一個向前移動的替代路徑。我似乎記得rgl包在其repector中有動畫選項。