> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of mat > Sent: Tuesday, April 19, 2011 1:59 PM > To: John Kane > Cc: r-help@r-project.org > Subject: Re: [R] Axes Alignment Problem for Multiple Plots > > Ok, I can replicate your problem, with following code: > > dat <- 1:10 > barplot(dat, beside=TRUE,ylim=c(0,100)); > par()$usr; > par(new=T); > plot(dat, ylim=c(0,100), type="l"); > par()$usr;
Use yaxs="i" (see ?par) to have plot use the desired y limits verbatim. However, usnig par(new=TRUE) is usually a bad way to overlay things. Use lines() and points() when possible. E.g., barCenters <- barplot(dat, beside=TRUE, ylim=c(0,12)) lines(x=barCenters, y=dat) Note how the lines pass through the centers of the bar tops. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > So it looks like even if you specify yourself ylim, the resulting > effective ylim (usr[3:4] ) will be different! More surprinsingly, > setting the usr parameter before is not effective: > par(new=T, usr=c(0,11,0,100)); > > this will not prevent par()$usr; to be different than fixed :-( > > No idea, but hopefully someone else on the list will be able > to provide > advice! > > Matthieu > > > > > Le 19. 04. 11 20:47, John Kane a écrit : > > What is Coredata(Z0)? > > It would be very useful. as the posting guidelines suggest > to supply working code and sample data. > > > > > > --- On Tue, 4/19/11, Barbaglia, Guido > (ESA)<guido.barbag...@fao.org> wrote: > > > >> From: Barbaglia, Guido (ESA)<guido.barbag...@fao.org> > >> Subject: [R] Axes Alignment Problem for Multiple Plots > >> To: "r-help@r-project.org"<r-help@r-project.org> > >> Cc: "Stigler, Matthieu (EST)"<matthieu.stig...@fao.org> > >> Received: Tuesday, April 19, 2011, 11:42 AM > >> Dear all, > >> > >> I'm trying to plot, in the same window, > >> two different series, using barplot() for the first one and > >> plot() for the second. What happens is that the second chart > >> has a different axes origin, therefore the final plot is > >> wrong. This piece of code shows the differences between the > >> values of par()$usr: > >> > >> barplot(coredata(Z0), beside=TRUE, > >> ylim=c(0,100)); > >> par()$usr; > >> par(new=T); > >> plot(coredata(Z0), ylim=c(0,100)); > >> par()$usr; > >> > >> I would like to know how it is possible to edit the values > >> of par()$usr[3:4] of the second chart in order to be the > >> same of the first one or, alternatively, how can I plot > >> together bar and line series within the same reference > >> system. > >> > >> > >> Best Regards > >> Guido Barbaglia > >> ______________________________________________ > >> 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. > >> > > ______________________________________________ > 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. > ______________________________________________ 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.