2017-05-09 2 views
1

関数で定義されたggplotの2つの行の間をどのようにシェーディングするかを調べようとしました。私はgeom_areaまたはgeom_ribbonを使っていくつかのソリューションを見つけましたが、どちらの場合でもyminとymaxを定義するデータベースが必要です。他の可能性はありますか? yminとymaxは、行と同じ関数でも定義されていますか?ここでggplotの関数で定義された2行の間の陰影領域

は私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を使用して、2つの機能の間の領域を埋めることができます。

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

関連する問題