[R] How to plot two graphs on one single plot?

Stephen Tucker brown_emu at yahoo.com
Sat Feb 24 11:34:39 CET 2007


you can also call

plot(x1,y1)
par(new=TRUE)
plot(x2,y2,axes=FALSE)

but this is more helpful for when you want to plot with multiple y-axes.

in general, it is also possible to build up from low-level graphical
elements:

plot.new()
plot.window(xlim=range(x1),ylim=range(y1))
lines(x1,y1)
axis(1); axis(2); box()
plot.window(xlim=range(x2),ylim=range(y2))
lines(x2,y2)
axis(1); axis(2); box()

if you want both plots to be on the same scale, you can specify the axes
limits a priori, or retrieve the limits from the first figure to call in the
second by par("usr"). to use these in the second xlim, ylim call, you should
set par(xaxs="i",yaxs="i") so they aren't padded above and below the
specified limits. (see ?par for xaxs and yaxs)

best regards,

st

--- Steven McKinney <smckinney at bccrc.ca> wrote:

> 
> Broadly speaking, there are a few classes 
> of plotting functions.
> 
> 1)  "New graph" functions.
> The plot() function starts a new graph.
> 
> 2)  "Add to a graph" functions
> The points(), lines(), text() etc. functions
> add something to the current graph.
> 
> 3)  "Control graph" functions
> par() controls various aspects of the graph.
> 
> R graphics experts might have some better
> classification and terminology.
> 
> So you want your second plotting function to be
> points() rather than plot(), to add to the
> existing graph.  
> 
> Try
> 
> >  x1=rnorm(25, mean=0, sd=1)
> >  y1=dnorm(x1, mean=0, sd=1)
> > 
> >  x2=rnorm(25, mean=0, sd=1)
> >  y2=dnorm(x2, mean=0, sd=1)
> >  plot(x1, y1, type='p', xlim=range(x1,x2), ylim=range(y1, y2), xlab='x',
> ylab='y')
> >  points(x2, y2, type='p', col="red", xlab='x', ylab='y')
> > 
> 
> Steven McKinney
> 
> Statistician
> Molecular Oncology and Breast Cancer Program
> British Columbia Cancer Research Centre
> 
> email: smckinney at bccrc.ca
> 
> tel: 604-675-8000 x7561
> 
> BCCRC
> Molecular Oncology
> 675 West 10th Ave, Floor 4
> Vancouver B.C. 
> V5Z 1L3
> Canada
> 
> 
> 
> 
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch on behalf of Yun Zhang
> Sent: Fri 2/23/2007 7:34 AM
> To: Henrique Dallazuanna
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] How to plot two graphs on one single plot?
>  
> Thanks. Now R plots two graphs on one plot.
> Yet they are still on two graphs, vertically parallelized with each other.
> 
> But what I want to do is actually plotting two distribution on one 
> single graph, using the same x and y axis. Like:
> |
> |
> |               (dist2)
> |   (dist 1)
> |
> --------------------------->
> 
> Is it possible to do that?
> 
> Thanks,
> Yun
> 
> Henrique Dallazuanna wrote:
> > par(mfrow=c(2,1))
> > #your plot
> > #after plot
> > par(mfrow=c(1,1))
> >
> > On 23/02/07, *Yun Zhang* <yunzhang at princeton.edu 
> > <mailto:yunzhang at princeton.edu>> wrote:
> >
> >     Hi,
> >
> >     I am trying to plot two distribution graph on one plot. But I dont
> >     know
> >     how. I set them to the same x, y limit, even same x, y labels.
> >
> >     Code:
> >     x1=rnorm(25, mean=0, sd=1)
> >     y1=dnorm(x1, mean=0, sd=1)
> >
> >     x2=rnorm(25, mean=0, sd=1)
> >     y2=dnorm(x2, mean=0, sd=1)
> >     plot(x1, y1, type='p', xlim=range(x1,x2), ylim=range(y1, y2),
> >     xlab='x',
> >     ylab='y')
> >     plot(x2, y2, type='p', col="red", xlab='x', ylab='y')
> >
> >     They just dont show up in one plot.
> >
> >     Any hint will be very helpful.
> >
> >     Thanks,
> >     Yun
> >
> >     ______________________________________________
> >     R-help at stat.math.ethz.ch <mailto:R-help at stat.math.ethz.ch> mailing
> >     list
> >     https://stat.ethz.ch/mailman/listinfo/r-help
> >     <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.
> >
> >
> >
> >
> > -- 
> > Henrique Dallazuanna
> > Curitiba-Paraná
> > Brasil
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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 at stat.math.ethz.ch 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.
> 



 
____________________________________________________________________________________
Need a quick answer? Get one in minutes from people who know.
Ask your question on www.Answers.yahoo.com



More information about the R-help mailing list