That did it, thanks. Love your book! Cheers, Bob
>-----Original Message----- >From: r-sig-geo-boun...@stat.math.ethz.ch [mailto:r-sig-geo- >boun...@stat.math.ethz.ch] On Behalf Of Edzer Pebesma >Sent: Tuesday, November 02, 2010 3:05 AM >To: r-sig-geo@stat.math.ethz.ch >Subject: Re: [R-sig-Geo] Bubble plot from SpatialPolygons object > > > >On 11/01/2010 09:53 PM, Muenchen, Robert A (Bob) wrote: >> Hi All, >> >> I'm having great fun learning the vast array of mapping options in R. >I'm now working on a teaching example (below) that will step slowly >through creating a tiny map, converting it to SpatialPolygons and then >plotting a choropleth and bubble plots in several ways (to be simplified >to just one way when I'm done learning.) >> >> The first place I'm stuck is getting a legend to handle both size and >color at the same time on the bubble plot (2nd from bottom). Either one >works by itself, but not both together. >> >> My second problem is using plot twice with "add=TRUE" (bottom >example). When I run the book example though it works fine, so I've got >to be doing something truly inane. >> >> Finally, I'm plotting the bubbles in the centers of the regions that I >entered into a dataframe. That seems silly since these are created >automatically when I convert from a map object to a SpatialPolygons >object, and stored in the labpt slots. There must be an easy way to call >them from there, but I haven't figured it out. >> >> Thanks! >> Bob >> >> Here's what I've got so far: >> >> #---------------------------------------- >> # Create a "map" class object of Tinyland >> #---------------------------------------- >> long <- c( >> 20, 25, 32, 30, 27, 18, 20, NA, >> 35, 42, 42, 32, 25, 29, 35, NA, >> 30, 35, 35, 29, 25, 20, 20, 24, 30) >> lat <- c( >> 30, 30, 35, 39, 39, 34, 30, NA, >> 21, 25, 33, 35, 30, 23, 21, NA, >> 18, 18, 21, 23, 30, 30, 25, 20, 18) >> range <- c(18, 42, 18, 39) >> names=c("A","B","C") >> TinylandMap <- list( >> x=long, >> y=lat, >> names=names, >> range=range) >> class(TinylandMap) <- "map" >> >> TinylandMap >> map(TinylandMap) >> >> # Now convert it to a SpatialPolygon object >> >> library("maptools") >> TinylandSP <- map2SpatialPolygons( TinylandMap, >> IDs=TinylandMap$names, >> proj4string=CRS("+proj=longlat +ellps=WGS84") ) >> str(TinylandSP, max.level=2) >> plot(TinylandSP) >> >> # Create some "pop"ulation data >> region <- c("A","B","C") >> pop <- c(271828, 314159, 195996) >> labptX <- c(25,34,26) #X-value of center of each region >> labptY <- c(34,28,23) #Y-value of center of each region >> myPopData <- data.frame(region,labptX,labptY,pop) >> myPopData >> >> # Get some grey shades >> # could automate this: myGreys <- grey( (1-( pop / max(pop) ) ) ) >> # but these look nicer: >> myGreys <- c("gray60","gray30","gray90") >> myGreys >> >> # Choroploth plot from SpatialPolygons >> plot(TinylandSP, col = myGreys ) >> legend( 37, 38 , >> pop, >> fill = myGreys ) >> text( 37, 38.5, pos=4, "pop") >> >> # Create some Character EXpansion values >> myCexValues <- 5*pop/max(pop) >> >> # This works and has a nice legend: >> library(PBSmapping) >> plot(TinylandSP) >> addBubbles(labptX, labptY, pop, >> legend.type="nested", col="grey") >> >> # This almost works but legend bubbles are not black >> # and overlap quite a bit. Is the legend function >> # capable of making the points black? >> >> plot(TinylandSP) >> symbols(labptX, labptY, circles=pop, inches=1/5, bg="black", add=TRUE) >> legend( 37, 38, legend=pop, >> pch=1, pt.cex=myCexValues) > >use > >pch = 16, y.intersp=2 > >in the legend command. > >> # Here I'm trying to follow the example from >> # Applied Spatial Data Analysis with R >> # page 67 bottom by using plot twice. >> # But the 2nd plot says "add is not a graphical parameter" >> # so the bubbles start over on a blank map >> # I'm also trying fill="black" in the legend & getting squares >> >> plot(TinylandSP) >> plot( labptX, labptY, pch=1, bg="black", cex=myCexValues, add=TRUE ) >> legend( "topright", legend=pop, >> pch=1, pt.cex=myCexValues, fill="black") > >instead of the second plot, use: > >points(labptX, labptY, pch=1, bg="black", cex=myCexValues) >> >> ========================================================= >> Bob Muenchen (pronounced Min'-chen), Manager >> Research Computing Support >> Voice: (865) 974-5230 >> Email: muenc...@utk.edu >> Web: http://oit.utk.edu/research, >> News: http://oit.utk.edu/research/news.php >> ======================================================== >> >> _______________________________________________ >> R-sig-Geo mailing list >> R-sig-Geo@stat.math.ethz.ch >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo > >-- >Edzer Pebesma >Institute for Geoinformatics (ifgi), University of Münster >Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251 >8333081, Fax: +49 251 8339763 http://ifgi.uni-muenster.de >http://www.52north.org/geostatistics e.pebe...@wwu.de > >_______________________________________________ >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