[R] plot with different color

P Ehlers ehlers at math.ucalgary.ca
Sat Jun 3 02:18:28 CEST 2006


Greg,

It might be better to use ylim = c(min(x), 0)
in place of ylim = c(-4, 0). I don't think plt can take
negative values.

Peter Ehlers

Greg Snow wrote:

> Here is one approach.  It uses the function clipplot which is shown
> below (someday I will add this to my TeachingDemos package, the
> TeachingDemos package is required).
> 
> An example of usage:
> 
> 
>>x <- rnorm(1:100)
>>plot(x, type='l',col='red')
>>clipplot( lines(x, col='blue'), ylim=c(-4,0) )
> 
> 
> Hope this helps,
> 
> The function definition is: 
> 
> clipplot <- function(fun, xlim=par('usr')[1:2], 
> 	ylim=par('usr')[3:4] ){
>   old.par <- par(c('plt','xpd'))
> 
> 
>   if( length(xlim) < 2 ) stop('xlim must be a vector with at least 2
> elements')
>   if( length(ylim) < 2 ) stop('ylim must be a vector with at least 2
> elements')
> 
>   if( !require(TeachingDemos) ) stop('TeachingDemos package needed')
> 
>   xl <- range(xlim)
>   yl <- range(ylim)
> 
>   pc <- cnvrt.coords(xl,yl)$fig
> 
>   par(plt=c(pc$x,pc$y),xpd=FALSE)
> 
>   fun
> 
>   par(old.par)
>   box() # need to plot something to reset
> 
> }  
>   
> 
>



More information about the R-help mailing list