Still not as good as it should be, but at least a try. Some of the code could be a lot more efficient, but I guess you could use this as a template:
require(maptools) nc <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1], proj4string=CRS("+proj=longlat +datum=NAD27")) for (i in 1:length(n...@data$nwbir79)) { zv <- rep(n...@data$nwbir79[i], length(n...@polygons[[i]]@polygons[[...@coords)) xy <- n...@polygons[[i]]@polygons[[...@coords colnames(xy) <- c("x", "y") xyz.tmp <- cbind(xy, zv) if (i == 1) xyz <- xyz.tmp else xyz <- rbind(xyz, xyz.tmp) } #install.packages(c("R.basic"), contriburl="http://www.braju.com/R/repos/") require(R.basic) xyz <- data.frame(xyz) with(xyz, plot3d(x,y,zv, type="n", theta=35, phi=30)) un <- unique(xyz$zv) my.colors <- colorRampPalette(c("green", "blue", "red")) mypalette <- rev(my.colors(100)) for (ii in 1:length(un)) { a <- un[ii] b <- data.frame(x=xyz$x[xyz$zv==a], y=xyz$y[xyz$zv==a], zv=xyz$zv[xyz$zv==a]) for (iii in 1:length(b$x)) { if (iii != length(b$x)) { ab <- b[iii:(iii+1),] } else ab <- rbind(b[iii,], b[1,]) ab <- rbind(ab, ab[2,], ab[1,]) ab[3:4,3] <- 0 ab$uni <- iii ab$group <- ii if (iii == 1) out <- ab else out <- rbind(out, ab) } if (ii == 1) p.out <- out else p.out <- rbind(p.out, out) } p.out$uni <- as.integer(rep(1:(length(p.out$uni)/4), each = 4)) length(p.out$x) iv1 <- 1 while (iv1 <= length(p.out$x)) { for (i in iv.1:(iv1+2460)) { with(p.out, polygon3d(x[uni==i], y[uni==i], zv[uni==i], border = NULL, lty=1, col="green"))# or mypalette[group[(i+]])) } iv1 <- iv1+2460 } for (i in 1:length(un)) { with(xyz, polygon3d(x[zv==un[i]],y[zv==un[i]],zv[zv==un[i]], col = "green")) # or col=mypalette[i])) } On Tuesday 03 March 2009 03:29:46 am Jim Burke wrote: > Hi Everyone, > > QUESTION: How can I plot a spatial polygon (SpatialPolygonsDataFrame) as > 3-d? Perhaps using "spplot.polygons" with its z value? > > GOAL: To have a series of polygons look like approximately like the last > example in the PDF below. > http://ocw.mit.edu/NR/rdonlyres/Urban-Studies-and-Planning/11-521Spatial-Da >tabase-Management-and-Advanced-Geographic-Information-SystemsSpring2003/ACA8 >0C9F-4089-403E-9669-50763381D08A/0/lect13c.pdf > > EXAMPLE SUGGESTION: Use "spplot.pologons" with the venerable SourceForge > NC fig21.R example and using its color coding values as the polygon $z > value? Assuming lat and long are in the sp. > http://r-spatial.sourceforge.net/gallery/#fig21.R > > Then if its not as straightforward as above, what would be the steps to > convert a spatial polygon to points or something to graph that way? > > Thanks, > Jim Burke > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/r-sig-geo _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo