[R] Need help to draw a plot

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Mon Jun 23 15:38:26 CEST 2008


Ron Michael wrote:
> can i have some instruction on how to draw this type of plot in R :
> http://sitmo.com/doc/Image:Ll_ou_conpron.png#filelinks ? Regards,
> 

  The black curve and it's grey friends are probably easily done with 
plot or matplot, but you need to make sure the X-axis extends far enough 
to the right to get the red curve in.

  The vertical and horizontal lines you can do with abline(v=1.0)

  The red curve looks like a normal distribution turned sideways. You 
could do this with lines() as well, but switching the X and Y coords 
from what you'd usually do. You'll need par()$usr to get the vertical 
range to compute the normal. Here's a fairly close facsimile except I 
couldn't be bothered to make the grey lines look exactly like your plot!

makeplot <- function(){
   x=seq(0,1,len=50)

   y=3*exp(-x)
   yu=y/1.1+x
   yl=y-(yu-y)

   matplot(x,cbind(y,yu,yl),
           col=c("black","grey","grey"),
           lty=c(1,1,1),
           ,xlim=c(0,1.4),type='l',ylim=c(0,3),
           xlab="t",ylab="Si")

   mean=y[length(y)]
   sd=0.2
   abline(v=x[length(x)])
   abline(h=1.0,lty=2)
   xup=seq(par()$usr[3],par()$usr[4],len=50)
   yup=dnorm(xup,mean,sd)/8
   lines(1+yup,xup,col="red")
}



More information about the R-help mailing list