I want to overlay a small inset map on top of another map, but I can't figure out how to do it. For example, here are two different maps: # map 1 - Ohio map("state", region= "ohio") # map 2 - US with Ohio darkened map("state") map("state", region="ohio", fill=T, add=T) I would like to add map 2 as a small inset in the corner of map 1. I have tried: map("state", region= "ohio") par(new=TRUE, mar=c(3, 3, 15, 15)) map("state") map("state", region="ohio", fill=T, add=T) but this seems to erase map 1 and replace it with a full size version of map 2. I can successfully overlay an unrelated plot using similar code: map("state", region= "ohio") par(new=TRUE, mar=c(3, 3, 15, 15)) plot(1:10, 1:10) So, there must be something about the maps() function that I'm tripping over. Any suggestions? I am using R for Windows 2.13.0 and the maps package version 2.1-5. Jean `·.,, ><(((º> `·.,, ><(((º> `·.,, ><(((º> Jean V. Adams Statistician U.S. Geological Survey Great Lakes Science Center 223 East Steinfest Road Antigo, WI 54409 USA [[alternative HTML version deleted]]
How about the subplot() function in the TeachingDemos package? It is basically using par() but you do not have to learn all the gory details. Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: 515-294-2465 Web: http://yihui.name Department of Statistics, Iowa State University 2215 Snedecor Hall, Ames, IA On Tue, Sep 27, 2011 at 2:31 PM, Jean V Adams <jvadams at usgs.gov> wrote:> I want to overlay a small inset map on top of another map, but I can't > figure out how to do it. > For example, here are two different maps: > > # map 1 - Ohio > map("state", region= "ohio") > > # map 2 - US with Ohio darkened > map("state") > map("state", region="ohio", fill=T, add=T) > > I would like to add map 2 as a small inset in the corner of map 1. > I have tried: > > map("state", region= "ohio") > par(new=TRUE, mar=c(3, 3, 15, 15)) > map("state") > map("state", region="ohio", fill=T, add=T) > > but this seems to erase map 1 and replace it with a full size version of > map 2. > > I can successfully overlay an unrelated plot using similar code: > > map("state", region= "ohio") > par(new=TRUE, mar=c(3, 3, 15, 15)) > plot(1:10, 1:10) > > So, there must be something about the maps() function that I'm tripping > over. > > Any suggestions? > > I am using R for Windows 2.13.0 > and the maps package version 2.1-5. > > Jean > > > `?.,, ?><(((?> ? `?.,, ?><(((?> ? `?.,, ?><(((?> > > Jean V. Adams > Statistician > U.S. Geological Survey > Great Lakes Science Center > 223 East Steinfest Road > Antigo, WI 54409 ?USA > > ? ? ? ?[[alternative HTML version deleted]] > > > ______________________________________________ > R-help at 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. > >
On Wed, 28 Sep 2011, Jean V Adams wrote:> I want to overlay a small inset map on top of another map, but I can't > figure out how to do it. > For example, here are two different maps: > > # map 1 - Ohio > map("state", region= "ohio") > > # map 2 - US with Ohio darkened > map("state") > map("state", region="ohio", fill=T, add=T) > > I would like to add map 2 as a small inset in the corner of map 1. > I have tried: > > map("state", region= "ohio") > par(new=TRUE, mar=c(3, 3, 15, 15)) > map("state") > map("state", region="ohio", fill=T, add=T) > > but this seems to erase map 1 and replace it with a full size version of > map 2. > > I can successfully overlay an unrelated plot using similar code: > > map("state", region= "ohio") > par(new=TRUE, mar=c(3, 3, 15, 15)) > plot(1:10, 1:10) > > So, there must be something about the maps() function that I'm tripping > over.I think the problem is that map() 'insists' (in some sense) on a clean frame so it can get the aspect ratio right.> > Any suggestions? >How about something like: map("state", region= "ohio", xlim=c(-85, -80), ylim=c(38, 42)) par(usr=c(-216, -66, 24, 144)) # you should be able to 'automate' this calculation map("state", add=T) map("state", region="ohio", fill=T, add=T) HTH Ray Brownrigg> I am using R for Windows 2.13.0 > and the maps package version 2.1-5. > > Jean > > > `?.,, ><(((?> `?.,, ><(((?> `?.,, ><(((?> > > Jean V. Adams > Statistician > U.S. Geological Survey > Great Lakes Science Center > 223 East Steinfest Road > Antigo, WI 54409 USA