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
Rainbow in loop
3 messages · WRAY NICHOLAS, Boris Steipe
Does: rainbow(3)[1] rainbow(3)[2] rainbow(3)[3] ... solve your issue? 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 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
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]
... solve your issue?
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
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.