On 11/23/07, thegeologician <[EMAIL PROTECTED]> wrote: > > Hi everyone! > > I'm digging into ggplot for some while now, I must say it's great! But - as > some others have posted before, and hadley knows very well himself - the > documentation is lacking some bits... > > So I have to pose that question directly: > > I'd like to produce a series of maps with different data on, but exactly the > same extent in each plot. Is there a way of switching the automatic extent > (to the data of the last layer added) OFF? I'm trying something like: > > drawOverviewMap<-function(){ > > p2<-ggplot(xlimits=c(2,20),ylimits=c(43,50))+coord_map(project="azequalarea") > p2<-p2+geom_path(data=wa,mapping=aes(x=x,y=y)) > p2<-p2+geom_point(data=spts,mapping=aes(x=Lon,y=Lat)) > return(p2) > } > > If I plot this in cartesian coordinates, it will zoom to the extent of the > country boundaries "wa", plus some extra space around it (since this is the > dataset with the widest range). This extent can be fixed with the > "limits=..." parameter. If I plot it in a map projection, as shown above, it > zooms to the extent of the sample localities "spts" (plus extra space). ;-( >
I think this is a bug in coord_map, as the limits set on the scales are basically ignored. However, I'm not completely sure how to fix this, as simply subsetting the data to be contained within those bounds may drop off points that are necessary to correctly draw boundaries. Essentially the problem is that the limits are specified on the unprojected data, and I don't know how to apply them to the projected data (and you might not want to do that anyway, given that it could produce non-linear boundaries). > Additional question: is there a way of eliminating the extra spacing in a > map projection? The "expand=c(0,0)" parameter seems not to work... This is a bug. The fix will be included in the next version of ggplot, or you can fix the current version by running this code: ScaleContinuous$new <- function(., name=NULL, limits=c(NA,NA), breaks=NULL, labels=NULL, variable, trans="identity", expand=c(0.05, 0)) { if (is.null(breaks) && !is.null(labels)) stop("Labels can only be specified in conjunction with breaks") .$proto(name=name, .input=variable, .output=variable, limits=limits, .breaks = breaks, .labels = labels, .expand=expand) } -- http://had.co.nz/ ______________________________________________ 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.