17

hi I have a question on geom_line.

what i want to do is, for the same line, have different colour segments according to some filter apply to another variable i.e not the variable used to plot the line.

for example if we have a dataframe with header time, var1 and var2

time <- seq (1,7,1)
var1  <- c(3,5,7,2,3,2,8)
var2 <- c(2,4,18,16,12,3,2)

if i have plot time vs var1 using geom_line and lets say i want to colour the line by applying a filter of above 10 on variable var2. so the line will have the same colour for time 1,2,6,7 and another colour for 3,4,5.

please tell me if this is possible? if so, please give me some directions.

Brian Diggs
  • 57,757
  • 13
  • 166
  • 188
user18407
  • 173
  • 1
  • 4

1 Answers1

27

Is this what you want?

time <- seq (1,7,1)
var1 <- c(3,5,7,2,3,2,8)
var2 <- c(2,4,18,16,12,3,2)
DF <- data.frame(time, var1, var2)

ggplot(DF, aes(time, var1, colour=(var2>10))) + 
  geom_line(aes(group=1))

enter image description here

Brian Diggs
  • 57,757
  • 13
  • 166
  • 188
  • yes!thank you very much. i did not know you can use a var inside colour. graham – user18407 Sep 16 '12 at 13:18
  • @user18407 The idea of mapping aesthetics of the plot (what things look like: position, color, shape, etc.) to data values is one of the fundamental ideas of `ggplot2` (and the grammar of graphics on which it is based); it is a powerful tool for presenting data graphically. – Brian Diggs Sep 17 '12 at 15:32