Я не могу с легкостью использовать ваш набор данных, но из того, что я вижу, вы хотите построить только те точки, которые> (или равны) 0, верно? В этом случае это может быть довольно простое решение для вас. Я буду использовать фиктивный набор данных для значений +/- y:
df1 <- data.frame(x=seq(4, 10, by=0.1), y=cos(seq(4,10,by=0.1)), id='cos')
df2 <- data.frame(x=seq(4, 10, by=0.1), y=sin(seq(4,10,by=0.1)), id='sin')
df <- rbind(df1, df2)
При построении графика вы получите:
ggplot(df, aes(x,y)) + geom_line(aes(color=id))
Если вы хотите устранить какие-либо точки ниже y = 0, вы просто строите подмножество данных:
ggplot(df, aes(x,y)) + geom_line(data=subset(df,y>=0), aes(color=id))
Пределы Оси x и y можно изменить с помощью вызовов xlim()
и ylim()
на ваш участок.