# Rainbow in loop

3 messages
Open this post in threaded view
|

## Rainbow in loop

 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]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Rainbow in loop

 Does:   rainbow(3)[1]   rainbow(3)[2]   rainbow(3)[3] ... solve your issue? B. > On Jun 8, 2017, at 8:20 AM, WRAY NICHOLAS <[hidden email]> 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]] > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Rainbow in loop

 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 <[hidden email]> wrote: > > >     Does: > >     rainbow(3)[1] >     rainbow(3)[2] >     rainbow(3)[3] > >     ... solve your issue? > >     B. > > > > > >     > On Jun 8, 2017, at 8:20 AM, WRAY NICHOLAS <[hidden email]> >     > 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]] >     > >     > ______________________________________________ >     > [hidden email] mailing list -- To UNSUBSCRIBE and more, see >     > 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. > >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.