2013-02-19 58 views
3

我在嘗試對geom_bar使用position =「fill」時出現錯誤。這裏的一個MWE:ggplot2 geom_bar在位置=「填充」時在某些情況下給出錯誤

temp = data.frame(X=rep(1:10,10), weight=runif(100), fill=rbinom(100,size=3,p=.5)) 
temp$weight[temp$fill==3] = 0 
ggplot(temp, aes(x=X, weight=weight, fill=as.factor(fill))) + 
    geom_bar(bin_width=1) 
ggplot(temp, aes(x=X, weight=weight, fill=as.factor(fill))) + 
    geom_bar(bin_width=1,position="fill") 

第一ggplot呼叫工作正常,產生一個條形圖,其中每個杆由對應於水平0,1 3種顏色,和2圖例顯示最終電平(3),但是因爲重量總是0,所以它不會出現在圖上。

但是,第二個ggplot調用返回一個錯誤。我曾預料它會像以前一樣返回同樣的情節,但只是將每個酒吧的高度調整到1.任何想法爲什麼會發生這種情況,以及是否有解決方法?

回答

3

似乎預計當您使用position=fillweight> 0。如果你這樣做:

ggplot(temp[temp$weight > 0,], 
    aes(x=X, weight=weight, fill=factor(fill))) + 
    geom_bar(bin_width=1, position="fill")  

然後它的工作。

+0

太棒了,謝謝!這正是我所期待的。 – 2013-02-19 14:45:55

相關問題