[R] Simple categorical scatter plot
Michael Bedward
michael.bedward at gmail.com
Thu Sep 23 14:11:52 CEST 2010
Something like this ?
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)
statusColor <- c("green", "orange", "pink", "red")
plot(time, pressure)
for (i in 2:length(time)) lines(time[(i-1):i], pressure[(i-1):i],
col=statusColor[status[i]+1])
Michael
On 23 September 2010 21:38, Richard DeVenezia <rdevenezia at gmail.com> wrote:
> 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 at 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.
>
More information about the R-help
mailing list