[R] Rainbow in loop

WRAY NICHOLAS nicholas.wray at ntlworld.com
Thu Jun 8 15:22:03 CEST 2017

```Yep fabbo I can then call each vector as a separate element in a list and it
gives the colours...  Thanks aleph-null times Nick

>
>     On 08 June 2017 at 14:13 Boris Steipe <boris.steipe at utoronto.ca> wrote:
>
>
>     Does:
>
>     rainbow(3)[1]
>     rainbow(3)[2]
>     rainbow(3)[3]
>
>
>     B.
>
>
>
>
>
>     > On Jun 8, 2017, at 8:20 AM, WRAY NICHOLAS <nicholas.wray at ntlworld.com>
>     > wrote:
>     >
>     > Hi R folk I have a distance time graph for a locomotive and at various
>     > times
>     > different events occur on board the loco. I want to put a vertical line
>     > on the
>     > speed time graph for each event, but I want to colour each different
>     > kind of
>     > event differently to see visually whether there's any pattern to these
>     > events
>     > happening. I could just create a vector of colours and use abline which
>     > is easy
>     > obviously, but there's a different number of events for each loco and
>     > what I
>     > would like to do is to use rainbow to create a new palette for each
>     > graph
>     >
>     > To illustrate I have some model code (made-up and v simplified) Real
>     > times are
>     > not necessarily whole numbers so there's not a one to one correspondence
>     > between times and index of time elements
>     >
>     > sec.time<-seq(0,100)
>     >
>     > distance<-c(rep(0,
>     > 10),rep(1,5),rep(2,20),rep(3,10),rep(4,20),rep(5,5),rep(6,31))
>     > plot(sec.time,distance,type="l")
>     > horntime<-c(7,23,52,67,81,90)
>     > wipertime<-c(4,18,34,47,62,78,89)
>     > calltime<-c(27,58,93)
>     >
>     > abline(v=sec.time[horntime], col="red")
>     > abline(v=sec.time[wipertime], col="blue")
>     > abline(v=sec.time[calltime], col="green")
>     >
>     > what I want, in this case as there are three events, is to have horn in
>     > red,
>     > wiper in blue and call in green using rainbow with 3. The problem is
>     > that I
>     > can't see how to call rainbow using a sequence (for loop doesn't work)
>     > and
>     > putting horn/wiper/call as vectors in a list doesn't work as it's too
>     > recursive.
>     > I suppose that I could put horn/wiper/call etc into a matrix of width
>     > the
>     > longest vector and fill the other spaces with dummy -1 but this seems a
>     > bit
>     > inelegant and also in principle I'd like to be able to call rainbow in
>     > the
>     > desired way as I have to prepare various graphs of different aspects of
>     > loco
>     > behaviour
>     >
>     > If anyone has any ideas I'd be v grateful
>     >
>     > Thanks Nick
>     > [[alternative HTML version deleted]]
>     >
>     > ______________________________________________
>     > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>     > https://stat.ethz.ch/mailman/listinfo/r-help