Hi

I am not sure but you probably need to use segments. 

?segments

AFAIK for line there is only one colour for whole line possible.

and in your function statusColor you shall not use if but ifelse or better

statusColor <- function (x) {
  c("green","orange","pink","red")[x+1]
}

based on fact that x is vector of integers from 0 to 3.

Regards
Petr


r-help-boun...@r-project.org napsal dne 23.09.2010 13:38:43:

> New to R.  I am trying to create a simple xy plot wherein the line
> segment color is determined by a categorical column
> 
> The following does not change colors for me, probably because I don't
> quite have a handle on either functions or value mapping syntax.
> ----------
> time     <- c(1, 2, 3, 7,10,11,14,16,20)
> pressure <- c(0,10,20,20,50,18,60,65,90)
> status   <- c(0, 0, 1, 1, 1, 0, 3, 3, 3)
> measures <- c(time,pressure,status)
> 
> attach(measures)
> 
> statusColor <- function (x) {
>   if (x==0) return ("green")
>   if (x==1) return ("orange")
>   if (x==2) return ("pink")
>   if (x==3) return ("red")
> }
> 
> par(mfrow=c(3,2))
> plot(time,pressure,type="l")
> plot(time,pressure,type="l")
> plot(time,pressure,type="l")
> plot(time,pressure,type="l")
> plot(time,pressure,type="l",col=statusColor(status))
> plot(time,pressure,type="l")
> ----------
> Warning message:
> In if (x == 0) return("green") :
>   the condition has length > 1 and only the first element will be used
> 
> 
> TIA,
> Richard A. DeVenezia
> 
> ______________________________________________
> 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.

Reply via email to