[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