2014-05-08 9 views
5

Mam SpatialPolygonsDataFrame że wykreślić za pomocą następującego polecenia:kreślenia SpatialPointsDataFrame nad SpatialPolygonsDataFrame

spplot(milanoNILNew, "percPolVita",at = c(0,0.0696,0.08979,0.0974,0.1116,0.181),col.regions =pal,main="Quota Clienti Unipol con Polizze Vita ") 

Stworzyłem spatialPointsDataFrame pomocą następującego polecenia

agenziePoints<-SpatialPointsDataFrame(coords=datiAgenzie[,c("Long","Lat")],data=datiAgenzie,proj4string = llCRS, match.ID = TRUE). 

jestem w stanie wykreślić wielokątów, ale nie jestem w stanie reprezentować agenziePoints na poligonach na tym samym wykresie. Z góry dziękuję za wsparcie.

Odpowiedz

5

Po prostu użyj funkcji wykresu bazowego z argumentem add = TRUE.

require(sp) 

# Create polygons 
sr=SpatialPolygons(list(
    Polygons(list(Polygon(cbind(c(180114,180553,181127,181477,181294,181007,180409, 
    180162,180114),c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),"1"), 
    Polygons(list(Polygon(cbind(c(180042,180545,180553,180314,179955,179142,179437,179524,179979,180042), 
    c(332373,332026,331426,330889,330683,331133,331623,332152,332357,332373)))),"2"))) 
srdf=SpatialPolygonsDataFrame(sr, data.frame(cbind(1:2,1:2), row.names=c("1","2"))) 

# Add points (sp meuse dataset) 
data(meuse) 
coordinates(meuse) = ~x+y 

# Create a color vector for the meuse points 
color <- rep("xx", nrow([email protected])) 
    color[([email protected]$copper > 0)&([email protected]$copper <= 31)] <- "black" 
    color[([email protected]$copper > 31)] <- "red" 

# Plot polygons with points overlaid  
plot(srdf, col=c("grey","blue")) 
    plot(meuse, col=color, pch=19, add=TRUE) 

Jeśli naprawdę chcesz korzystać z funkcji spplot można realizuje coś takiego:

# spplot approach 
pts=list("sp.points", meuse, pch=19, col=color) 
    spplot(srdf, "X1", col.regions=c("grey","blue"), colorkey=FALSE, 
     sp.layout=list(pts))