2017-05-09 50 views
1

我試圖找到如何遮蔽由函數定義的ggplot中兩條線之間的區域的可能性。我發現了一些使用geom_area或geom_ribbon的解決方案,但是在這兩種情況下,您都需要一個定義ymin和ymax的數據庫。還有其他的可能嗎?在ymin和ymax的定義中,線條的功能也是一樣的嗎?用ggplot中的函數定義的兩條線之間的陰影區域

這裏是我的exsample:

myplot <- ggplot(data.frame(x=c(0, 100)), aes(x=x)) + 
stat_function(fun= function(x)20*sqrt(x), geom="line", colour= "black", size= 1) + 
stat_function(fun= function(x)50*sqrt(x), geom="line", colour= "black", size= 1) 
myplot 

enter image description here

感謝您對您的幫助提前。

回答

5

嘗試將函數放入饋送數字的數據框中。然後,您可以使用geom_ribbon填寫兩個功能之間的區域。

mydata = data.frame(x=c(0:100), 
        func1 = sapply(mydata$x, FUN = function(x){20*sqrt(x)}), 
        func2 = sapply(mydata$x, FUN = function(x){50*sqrt(x)})) 

ggplot(mydata, aes(x=x, y = func2)) + 
    geom_line(aes(y = func1)) + 
    geom_line(aes(y = func2)) + 
    geom_ribbon(aes(ymin = func2, ymax = func1), fill = "blue", alpha = .5) 

enter image description here