Upload it to GoogleDocs <http://docs.google.com> or Dropbox<http://dropbox.com>and give us a public link to the dataset.
HTH, Brandon On Wed, Jun 23, 2010 at 21:57, Felipe Carrillo <mazatlanmex...@yahoo.com>wrote: > For some reason the shapefile can't get attached. > The shapefile is too large to put it in dput..Is there > another way to do this? > > > > ----- Original Message ---- > > From: Felipe Carrillo <mazatlanmex...@yahoo.com> > > To: Tom Hopper <tomhop...@gmail.com> > > Cc: r-h...@stat.math.ethz.ch; ggpl...@googlegroups.com > > Sent: Wed, June 23, 2010 1:52:29 PM > > Subject: Re: [R] Plotting Data on a Map > > > > Hi: > I am practicing with the attached shapefile and was wondering > if I can > > get some help. Haven't used 'rgdal' and 'maptools' much > but it appears to be > > a great way bring map data into R. > Please take a look at the comments and let > > me know if I need to > explain better what I am trying to > > accomplish. > > library(rgdal) > library(maptools) > library(ggplot2) > dsn="C:/Documents > > and Settings/fcarrillo/Desktop/Software/R Scripts > and Datasets/NCTC/Data > > Analisys II/Data 4 Data Analysis II March 2009- > March2010/Data" > wolves.map > > <- readOGR(dsn=dsn, > > layer="PNW_wolf_habitat_grid") > class(wolves.map) > dim(wolves.map) > head(wolves.map,1) > names(wolves.map) > gpclibPermit() > wolves.ds > > <- fortify(wolves.map) > head(wolves.ds);tail(wolves.ds) > # Shapefile of 5 > > states > wolves.plot <- ggplot(wolves.ds,aes(long,lat,group=group)) > > + > geom_polygon(colour='white',fill='lightblue') > wolves.plot > # How to > > show the state borders of Washington, Oregon, Idaho, Montana > and Wyoming on > > map? > > # Subset from wolves to create a logistic regression model based > > on > WOLVES_99 and then apply to all the 5 states > # Remove the WOLVES_99 > > 2(two value) and use "one" for presence and > "zero" for absence to end up with > > 153 records. > #wolfsub<-subset(wolves,subset=!(WOLVES_99==2)) > #wolfsub > > <- subset(wolves.map,WOLVES_99!=2) > wolfsub <- > > wolves.map[!wolves.map$WOLVES_99 %in% 2,];wolfsub > dim(wolfsub) > # 42 = > > Forest, 51 = Shrub, > 81 = > > Agriculture > wolfsub$Forest<-ifelse(wolfsub$MAJOR_LC==42,1,0) > wolfsub$Shrub<-ifelse(wolfsub$MAJOR_LC==51,1,0) > wolfsub$Agriculture<-ifelse(wolfsub$MAJOR_LC>81,1,0) > names(wolfsub);dim(wolfsub) > # > > create the > > model > mod1<-glm(WOLVES_99~RD_DENSITY+Forest+Shrub > +Agriculture,family=binomial,data=wolfsub) > summary(mod1) > wolfsub$pred99<-fitted(mod1) > names(wolfsub) > #fitted(mod1) > wolfsub$pred99 > > # > > Add the wolfsub data to the map to see the map > wolfsub <- > > fortify(wolfsub);names(wolfsub) > area_mod <- wolves.plot + > > geom_polygon(data=wolfsub,aes(fill=????)) > #Want to fill by WOLVES_99 but is > > gone #after fortify > area_mod > #Not sure how to proceed from here to fit the > > 'mod1' model to all > #the 5 states. > > > > > > > >From: Tom > > Hopper <> href="mailto:tomhop...@gmail.com">tomhop...@gmail.com> > >To: Felipe > > Carrillo <> href="mailto:mazatlanmex...@yahoo.com"> > mazatlanmex...@yahoo.com> > >Sent: > > Tue, June 22, 2010 9:40:19 PM > >Subject: Re: Plotting Data on a > > Map > > > >Felipe, > > > > > >I am just learning these > > tools, too, so it may be a good learning opportunity for both of us. > Please send > > me the files and I will try to put it together and plot > > it. > > > > > >Regards, > > > > > >Tom > > > > > >On > > Mon, Jun 21, 2010 at 11:57 PM, Felipe Carrillo <> ymailto="mailto: > mazatlanmex...@yahoo.com" > > href="mailto:mazatlanmex...@yahoo.com">mazatlanmex...@yahoo.com> > > wrote: > > > >Hi Tom: > >>I am just starting to use rgdal and > > maptools but I have a long way to go. I went to a training > >>a couple > > of weeks ago and the instructor showed us a csv file and a shapefile with > wolf > > data from > >>a national park in the midwest. I am trying to put all of > > the csv data and some predicted data > >>on a map using ggplot2 but I am > > stuck with it. I am just trying to do this example because I want > > to > >>see if I can apply this example to fish. Let me know if > > interested. > >> > >> > >>Felipe D. > > Carrillo > >>Supervisory Fishery Biologist > >>Department of the > > Interior > >>US Fish & Wildlife Service > >>California, > > USA > >> > >> > >> > >>> > >>>From: Tom > > Hopper <> href="mailto:tomhop...@gmail.com">tomhop...@gmail.com> > >>>To: > > > href="mailto:ggpl...@googlegroups.com">ggpl...@googlegroups.com > >>>Sent: > > Mon, June 21, 2010 2:27:14 PM > >>>Subject: Re: Plotting Data on a > > Map > >>> > >>> > >>>Hadley, > > > >>> > >>> > >>>Thank > > you! > >>> > >>> > >>>I doing this, I've > > encountered an encountered and unexpected difference between the graphs > on my > > Mac and my Windows machines. It appears that there is a default setting > > different between the two > > programs. > >>> > >>> > >>>Using the same commands > > on both Mac and Windows, I found that the polygon borders are plotted on > the > > Mac, but not on Windows, so on the Mac I see the country borders, but on > Windows > > I do not. On the Mac, it looks like the default for geom_polygon is > something > > like size = 0.01, colour = "gray50". On Windows, it's more like colour = > > alpha("gray50", 0), though in fact the visibility of polygon borders > seems to be > > independent of both the size and colour > > settings. > >>> > >>> > >>>Regards, > >>> > >>> > >>>Tom > >>> > >>> > >>>On > > Mon, Jun 21, 2010 at 3:00 AM, Hadley Wickham <> ymailto="mailto: > had...@rice.edu" > > href="mailto:had...@rice.edu">had...@rice.edu> > > wrote: > >>> > >>>Hi > > Tom, > >>>> > >>>>Thanks for contribution! Ploting map > > data is never easy and its always > >>>>nice to see a success > > story. > >>>> > >>>>Hadley > >>>> > >>>> > >>>>On > > Saturday, June 19, 2010, Tom Hopper <> href="mailto:tomhop...@gmail.com > ">tomhop...@gmail.com> > > wrote: > >>>>> Well, it turns out that, in my haste to thank > > Fernando, I posted code with some typos. I have also had a chance to test > it on > > my Mac, and found that fortify() was throwing an error ("Error in > nchar(ID) : > > invalid multibyte string 1"). I have added a call, currently commented > out, to > > Sys.setlocale() to fix this. I have tested the code below under R 2.11.1 > on both > > Windows XP and Mac OS X 10.5.8, with the latest packages installed. In > fact, the > > plot looks better in the Mac Quartz > > window. > >>>>> > >>>>> > >>>>> > > Sorry for the previous > > errors. > >>>>> > >>>>> > >>>>> > > # Download electricity generation data from > > > http://tonto.eia.doe.gov/cfapps/ipdbproject/iedindex3.cfm?tid=2&pid=2&aid=12&cid=&syid=2004&eyid=2008&unit=BKWH > >>>>> > >>>>> > >>>>> > > # Download new map data from > > http://thematicmapping.org/downloads/world_borders.php > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # Bring the thematicmapping data into R > >>>>> > > library("rgdal") > >>>>> world.map <- readOGR(dsn="C:/", > > layer="TM_WORLD_BORDERS-0.3") > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # Save the map data as an R object > >>>>> save(world.map, > > "worldmap.rdata") > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # As needed, reload the data > >>>>> > > library(maptools) > >>>>> gpclibPermit() > >>>>> > > load("worldmap.rdata") > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # Prepare the world.map data for ggplot2 > >>>>> > > library(ggplot2) > >>>>> # On some setups, fortify throws "Error > > in nchar(ID)" > >>>>> # in that case, use > > setlocale > >>>>> # Sys.setlocale("LC_ALL", locale = > > "C") > >>>>> world.ggmap <- fortify(world.map, region = > > "NAME") > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # Load the electricity generation data and clean it up to match with > > world.ggmape > >>>>> elect.gen.tot <- > > read.csv("Total_Electricity_Net_Generation_(Billion_Kilowatthours).csv", > sep = > > ",", dec = > > ".") > >>>>> > >>>>> > >>>>> > > names(elect.gen.tot) <- c("id", "y2004", "y2005", "y2006", "y2007", > > "y2008") > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # make sure the id column is in the same case for both > > sets > >>>>> elect.gen.tot$id <- > > tolower(elect.gen.tot$id) > >>>>> > >>>>> > >>>>> > > world.ggmap$id <- > > tolower(world.ggmap$id) > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # merge the two data sets > >>>>> world.ggmape <- > > merge(world.ggmap, elect.gen.tot, by = "id", all = > > TRUE) > >>>>> > >>>>> > >>>>> > > world.ggmape <- world.ggmape[order(world.ggmape$order), > > ] > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > # NOTE: at this point, the electricity data country names do not match > > 100% > >>>>> # with the thematicmapping country names (column > > "id"). > >>>>> # print out the country names > > using > >>>>> # table(world.ggmape$id) > >>>>> # > > and do a search for values of 1. Then find the corresponding > > country > >>>>> # name with values > 1 and rename the country > > names in the electricity > >>>>> # generation data to match > > (e.g. "Tanzania" becomes "united republic of > >>>>> # > > tanzania"). > >>>>> # Once this data cleaning operation is > > complete, repeat the above steps > >>>>> # starting with reading > > data into > > elect.gen.tot. > >>>>> > >>>>> > >>>>> > > # Plot the data using ggplot2 > >>>>> world.plot <- > > ggplot(data = world.ggmape, aes(x = long, y = lat, group = > > group)) > >>>>> > >>>>> > >>>>> > > world.plot + geom_polygon(aes(fill = y2007)) + labs(x = "Longitude", y = > > "Latitude", fill = "TWh") + opts(title = "Net Electricity Generation in > TWh for > > 2007\nData from EIA International Energy Statistics, > > 2008") > >>>>> > >>>>> > >>>>> > >>>>> > > On Fri, Jun 18, 2010 at 11:39 AM, Tom Hopper <> ymailto="mailto: > tomhop...@gmail.com" > > href="mailto:tomhop...@gmail.com">tomhop...@gmail.com> > > wrote: > >>>>> > > Fernando, > >>>>> > >>>>> That worked perfectly; > > thank you! > >>>>> > >>>>> There were some > > mismatches in the country names, as you noted, but after cleaning up the > > electricity generation data everything looks great. I've updated the > electricity > > generation data with the cleaned version and posted a graph to > > target="_blank" href="http://box.net">box.net. > >>>>> the > > graph: > > http://www.box.net/tomhopper/1/22918943/452739712 > >>>>> > >>>>> > > Below, for reference, is the complete R > > code. > >>>>> > >>>>> Thank you, and best > > regards, > >>>>> > >>>>> > > Tom > >>>>> > >>>>> # Download electricity > > generation data from > href=" > http://tonto.eia.doe.gov/cfapps/ipdbproject/iedindex3.cfm?tid=2&pid=2&aid=12&cid=&syid=2004&eyid=2008&unit=BKWH > " > > target=_blank > > > > http://tonto.eia.doe.gov/cfapps/ipdbproject/iedindex3.cfm?tid=2&pid=2&aid=12&cid=&syid=2004&eyid=2008&unit=BKWH > >>>>> > > # Download new map data from > href=" > http://thematicmapping.org/downloads/world_borders.php" target=_blank > > >http://thematicmapping.org/downloads/world_borders.php > >>>>> > >>>>> > > # Bring the thematicmapping data into R > >>>>> > > library(maptools) > >>>>> gpclibPermit() > >>>>> > > library("rgdal") > >>>>> world.map <- readOGR(dsn="C:/", > > layer="TM_WORLD_BORDERS-0.3") > >>>>> > >>>>> # > > Save the map data as an R object for later use > >>>>> > > save(world.map, > > "worldmap.rdata") > >>>>> > >>>>> # As needed, > > reload the data > >>>>> # > > load("worldmap.rdata") > >>>>> > >>>>> # Prepare > > the world.map data for ggplot2 > >>>>> > > library(ggplot2) > >>>>> world.ggmap <- fortify(world.map, > > region = "NAME") > >>>>> > >>>>> # Load the > > electricity generation data and clean it up to match with > > world.ggmape > >>>>> elect.gen.tot <- > > read.csv("Total_Electricity_Net_Generation_(Billion_Kilowatthours).csv", > >>>>> > > sep = ",", dec = ".") > >>>>> names(elect) <- c("id", > > "y2004", "y2005", "y2006", "y2007", > > "y2008") > >>>>> > >>>>> elect.gen.tot$id <- > > tolower(elect.gen.tot$id) > >>>>> > >>>>> # > > merge the two data sets > >>>>> world.ggmape <- > > merge(world.ggmap, elect.gen.tot, by = "id", all = TRUE) > >>>>> > > world.ggmape <- world.ggmape[order(world.ggmape$order), > > ] > >>>>> > >>>>> # NOTE: at this point, the > > electricity data country names may not match 100% > >>>>> # with > > the thematicmapping country names (column "id"). > >>>>> # print > > out the country names using > >>>>> # > > table(world.ggmape$id) > >>>>> # and do a search for values of > > 1. Then find the corresponding country > >>>>> # name with > > values > 1 and rename the country names in the > > electricity > >>>>> # generation data to match (e.g. "Tanzania" > > becomes "United Republic of > >>>>> # > > Tanzania"). > >>>>> # Once this data cleaning operation is > > complete, repeat the above steps > >>>>> # starting with reading > > data into elect.gen.tot. > >>>>> > >>>>> # Plot > > the data using ggplot2 > >>>>> world.plot <- ggplot(data = > > world, aes(x = long, y = lat, group = group)) > >>>>> world.plot > > + geom_polygon(aes(fill = y2007)) + > >>>>> labs(x = > > "Longitude", y = "Latitude", fill = "TWh") + > >>>>> > > opts(title = "Net Electricity Generation in TWh for 2007\nData from EIA > > International Energy Statistics, > > 2008") > >>>>> > >>>>> > >>>>> > > On Fri, Jun 18, 2010 at 2:10 AM, fernando <> ymailto="mailto: > fgtabo...@gmail.com" > > href="mailto:fgtabo...@gmail.com">fgtabo...@gmail.com> > > wrote: > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > Hi > > Tom, > >>>>> > >>>>> > >>>>> > >>>>> > > I think fortify can help you in translating the sp object to > > a > >>>>> data.frame. Then you can use merge to join the two > > tables. The code bellow > >>>>> illustrates this, although I > > think there are some problems in matching country > >>>>> names. > > Another issue is that if you add coord_map(), something strange > > happens > >>>>> with Antarctica (maybe a problem in shapefile > > order?). > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > > -- > >>>> > >>>>> You received this message because > > you are subscribed to the ggplot2 mailing list. > >>>>> Please > > provide a reproducible example: > > http://gist.github.com/270442 > >>>>> > >>>>> To > > post: email > href="mailto:ggpl...@googlegroups.com"> > ggpl...@googlegroups.com > >>>>> > > To unsubscribe: email ggplot2+> href="mailto: > unsubscr...@googlegroups.com">unsubscr...@googlegroups.com > >>>>> > > More options: > > http://groups.google.com/group/ggplot2 > >>>>> > >>>> > >>>> > >>>>-- > >>>>Assistant > > Professor / Dobelman Family Junior Chair > >>>>Department of > > Statistics / Rice > > University > >>>>http://had.co.nz/ > >>>> > >>>-- > > > >>> > >>>You received this message because you are > > subscribed to the ggplot2 mailing list. > >>>Please provide a > > reproducible example: > >http://gist.github.com/270442 > >>> > >>>To post: > > email > href="mailto:ggpl...@googlegroups.com">ggpl...@googlegroups.com > >>>To > > unsubscribe: email ggplot2+> href="mailto:unsubscr...@googlegroups.com"> > unsubscr...@googlegroups.com > >>>More > > options: > >http://groups.google.com/group/ggplot2 > >>> > >> > > > > > > > > [[alternative HTML version > > deleted]] > > > > > -- > You received this message because you are subscribed to the ggplot2 mailing > list. > Please provide a reproducible example: http://gist.github.com/270442 > > To post: email ggpl...@googlegroups.com > To unsubscribe: email > ggplot2+unsubscr...@googlegroups.com<ggplot2%2bunsubscr...@googlegroups.com> > More options: http://groups.google.com/group/ggplot2 > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.