2016-05-22 2 views
1

Я хотел бы сделать линейный график, где мне нужно закрепить некоторые строки ниже/выше определенных значений y. В качестве примераЗажим/Лимит Geom_Line plotting

x <- c(1,2,3,4,5,6,7,8,9,10) 
    y1 <- c(1,2,3,4,5,6,7,8,9,10) 
    y2 <- c(2,4,6,8,10,12,14,16,18,20) 
    df <- data_frame(x, y1, y2) 

    #make plot for df 
    ggplot(data=df, aes(x=x, group=1)) + 

#plot y=x 
    geom_line(data=df, aes(x=x, y=y1, colour="red"))+ 

#plot y=2x for values of y equal to/ above 3 
    geom_line(data=df, aes(x=x, y=y2 >=3, colour="blue")) 

очевидно это не работает, но возможно ли это? И если да, то как? Очевидным решением было бы отредактировать сам фрейм данных, но для моей конечной цели это не сработает. Другим решением было бы сделать график невидимым (в данном случае) выше y = 3, но не был уверен, что возможно либо

Извините, если это было задано ранее. Я пытался поискать, но ничего не нашел. Большое спасибо,

ответ

1

Возможное решение сделать фактор вашего состояния и использовать, чтобы цвет линии:

ggplot(data=df, aes(x=x, y=y2, group=1)) + 
    geom_line(aes(color = factor(y2 >= 3))) 

, который дает:

enter image description here


После повторного Если вы будете изучать свой вопрос, я думаю, что я мог бы неправильно его истолковать. Слегка адаптируя свой код, чтобы включать только значения, равные или выше 3:

ggplot(data=df, aes(x=x, y=y1)) + 
    geom_line(colour="red")+ 
    geom_line(data=df[df$y2 >= 3,], aes(x=x, y=y2), colour="blue") 

, который дает:

enter image description here

+1

аааа есть простое решение все вместе :) выглядит как Благодарения и что должно работать отлично для того, что я хочу (и первая часть также полезна для: D) –

+0

ahhh, это на самом деле не совсем то, что я хотел, и я до сих пор не реалировал. Можно ли провести линию y = 2x от y = 3 вверх, не имея значения для x = 1,5, y = 3. т. Е. Провести линию как обычно и ввести фильтр верхних частот после этого для y = 3 –

+0

@RobertHickman К какой части ответа вы относитесь? И что вы подразумеваете под * «фильтром высоких частот» *? Пожалуйста, объясните более четко, чего вы хотите достичь. – Jaap

Смежные вопросы