Rainbow in loop

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Rainbow in loop

WRAY NICHOLAS
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.
Reply | Threaded
Open this post in threaded view
|

Re: Rainbow in loop

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 <[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-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Rainbow in loop

WRAY NICHOLAS
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-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.