2014-02-19 108 views
2

我有這樣的直方圖GGPLOT2創建:如何繪製填充直方圖及其與ggplot2的密度?

x = rnorm(100,0,150) 
df <- data.frame(val=c(x)) 
ggplot(df, aes(val,..density.., fill = ..x..>100)) + 
    geom_histogram(binwidth=bw.SJ(df$val), colour="black") + 
    scale_fill_hue(h=c(115,230)) 

我想向PDF添加到這個柱狀圖,但當下一行補充說:

geom_density(colour="red", lwd=1) + 

這將返回錯誤:

Error in get(x, envir = this, inherits = inh)(this, ...) : 
    Aesthetics can not vary with a ribbon 

在此先感謝!

回答

4

如果您在geom_histogram內指定fill = ..x..>100)而不是整個圖表,它應該可以工作。您無法在密度上改變填充顏色。

ggplot(df, aes(val)) + 
    geom_histogram(aes(fill = ..x.. > 100), 
       binwidth = bw.SJ(df$val), colour = "black") + 
    scale_fill_hue(h = c(115, 230)) + 
    geom_density(colour = "red", lwd = 1) 
0

在密度調用中沒有任何參數嗎?如果是這樣嘗試的

geom_density(colour="red", size=1) + 

代替

geom_density(colour="red", lwd=1) + 

如果不工作,重複的例子,可能會有幫助。