[R] plot with different color

Greg Snow Greg.Snow at intermountainmail.org
Fri Jun 2 22:01:30 CEST 2006


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

}  
  


-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at intermountainmail.org
(801) 408-8111
 

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of array chip
Sent: Friday, June 02, 2006 1:10 PM
To: r-help at stat.math.ethz.ch
Subject: [R] plot with different color

Hi how can I plot a series of number as a line, but with lines above a
threshould as one color, and with lines below the threshold as another
color. for example, a numeric vector: rnorm(1:100), and plot these
numbers in the original order, but lines above the horizontal line at 0
are in red, and lines below in blue?

Thanks

______________________________________________
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



More information about the R-help mailing list