2016-09-21 61 views
0

我想爲不同曲線設定不同XLIM,例如在一個圖中,不同的曲線,不同XLIM

曲線1:

geom_line(aes(y = y1, colour = "y1"))+ xlim(1,3) 

CURVE2:

geom_line(aes(y = y2, colour = "y2"))+ xlim(4,7) 

curve3:

geom_line(aes(y = y3, colour = "y3"))+ xlim(7,10) 

但是在一個figu

library("ggplot2") 

x <- 1:10 
y1 <- a+1 
y2 <- a+2 
y3 <- a+3 

mm <- data.frame(x,y1,y2,y3) 

ggplot(mm, aes(x=x)) + 
    geom_line(aes(y = y1, colour = "y1"))+ 
    geom_line(aes(y = y2, colour = "y2"))+ 
    geom_line(aes(y = y3, colour = "y3"))+ 
    xlab("x") + 
    ylab("y") 

如何實現這個數字? figure

回答

0

你可以根據你想爲每個GEOM的限制子集數據:

x <- 1:10 
y1 <- x+1 
y2 <- x+2 
y3 <- x+3 

mm <- data.frame(x,y1,y2,y3) 

ggplot() + 
    geom_line(data=mm[which(mm$x>=1 & mm$x<=3),], aes(x=x, y = y1, colour = "y1")) + 
    geom_line(data=mm[which(mm$x>=4 & mm$x<=7),], aes(x=x, y = y2, colour = "y2")) + 
    geom_line(data=mm[which(mm$x>=7 & mm$x<=10),], aes(x=x, y = y3, colour = "y3")) + 
    xlab("x") + 
    ylab("y") 

enter image description here

+0

@perlatex這個回答解決你的問題?如果是這樣,請考慮認識到人們通過投票回答提供的幫助,然後單擊綠色箭頭選擇解決問題的最佳答案。謝謝, – dww

0

這個怎麼樣?

library("ggplot2") 

a <- 1:10 #rnorm(10) 
x <- 1:10 
y1 <- a+1 
y2 <- a+2 
y3 <- a+3 

mm <- data.frame(x,y1,y2,y3) 
mm[mm$x > 3, ]$y1 <- NA 
mm[mm$x < 4 | mm$x > 7, ]$y2 <- NA 
mm[mm$x < 7, ]$y3 <- NA 

ggplot(mm, aes(x=x)) + 
    geom_line(aes(y = y1, colour = "y1"))+ 
    geom_line(aes(y = y2, colour = "y2"))+ 
    geom_line(aes(y = y3, colour = "y3"))+ 
    xlab("x") + 
    ylab("y") 

enter image description here

+0

但是,這實際上刪除了數據,而不是從劇情中省略。不確定這是OP想要的。 – dww

+0

但您已經擁有y1,y2,y3向量的數據,它只在數據框中掩蓋您不需要的數據。 –

+0

@dww你是嚴格的 – perlatex

相關問題