2015-10-20 134 views
0

我想用x = -2到x = 2的正常函數創建一個圖,填充在-2到0的曲線下。 我用ggplot2試過用ggplot圖填充曲線

qplot(c(-2, 2), stat="function", fun=dnorm, geom="line") + 
+ geom_area(aes(xlim=c(-2,0)),stat="function", fun=dnorm) 

,但我得到這個圖,而不是完全充滿(黑色) enter image description here

我怎樣才能得到填充只能從-2到0的陰謀?

歡迎其他選擇或包。

我也試過只有一個命令與ggplot和填充選項,但我也不明白。
我知道有些人使用多邊形,但結果並不那麼柔和,很好。

PD:我再說一遍,我正在尋找的解決方案不包括事先生成x,y座標,而是直接使用stat =「function」,fun = dnorm或類似函數。因此,我的問題不是重複的。

我也試過

ggplot(NULL,aes(x=c(-2,2))) + geom_area(aes(x=c(-2,0)),stat="function", fun=dnorm, fill="red") + 
geom_area(aes(x=c(0,2)),stat="function", fun=dnorm, fill="blue") 

但同樣它填補所有的單一顏色,藍色的曲線。紅色的一半似乎被覆蓋。與geom_ribbon和其他選項一樣。

回答

3

嘗試這種情況:

ggplot(data.frame(x = c(-2, 2)), aes(x)) + 
    stat_function(fun = dnorm) + 
    stat_function(fun = dnorm, 
       xlim = c(-2,0), 
       geom = "area") 

enter image description here

+0

我想這個問題沒有問。 – skan

2

您不能用dnorm生成您的分銷數據嗎?

library(ggplot2) 
x<-seq(-2,2, 0.01) 
y<-dnorm(x,0,1) 
xddf <- data.frame(x=x,y=y) 
qplot(x,y,data=xddf,geom="line")+ 
    geom_ribbon(data=subset(xddf ,x>-2 & x<0),aes(ymax=y),ymin=0, 
       fill="red",colour=NA,alpha=0.5)+ 
    scale_y_continuous(limits=c(0, .4)) 

enter image description here

+0

但是我的意思是使用STAT = 「功能」 或類似的,而不會產生先前的x,y對。我只需要用一些參數修改我的geom_area()函數 – skan

+0

@skan我不知道如何用'geom_area'實現這個。 'geom_ribbon()'似乎工作得很好。 –