2013-06-20 43 views
4

我每年爲不同的病人誰在三個級別中的一個所屬的量。我想繪製每年三個級別的相對頻率分佈。比方說,病人的80%都標有C和其他病人A和B.由於多數具有C代替A分佈和B將不可見。所以,我改變了Y軸。我ggplot得到了以下問題:A和B彩色欄顯示,但對於C它從圖中消失。 這裏我做了一個例子:[R GGPLOT2 - geom_histogram:水平/顏色情節刪除,由於極限y規模

library(ggplot2) 
# Data set 
grp <- rep(c("A","B","C"), c(10,10,80)) 
year <- floor(runif(100)*10/3) 
df <- data.frame(grp,year) 
# Plot 
ggplot(df,aes(year)) + 
    geom_histogram(aes(fill=grp),position="fill") + 
    scale_y_continuous(lim=c(0,0.5)) 

如果我刪除最後一行(scale_y ...)然後我得到如圖0-1和各級(顏色)的整個範圍。隨着scale_y ..級別(顏色)C消失,只有灰色背景可見。有誰知道我可以如何避免C的顏色消失?感謝提示。

+1

從這個鏈接http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/它規定:「如果在y範圍使用上述方法減少(scale_y_continuous) ,範圍之外的數據將被忽略「。 C標籤超出0.5範圍,這就是爲什麼它被忽略。 – Harpal

+0

@Harpal。感謝您的鏈接。它回答了我的一些其他問題。 – giordano

回答

7

正如@Harpal已經說過,當你設置裏面scale_y_continuous()所有超出這個限制從情節刪除值的限制。如果你需要「放大」你的陰謀值從0到0.5使用coord_cartesian()代替scale_y_continuous()

ggplot(df,aes(year)) + 
    geom_histogram(aes(fill=grp),position="fill") + 
    coord_cartesian(y=c(0,0.5)) 

enter image description here

+0

非常感謝! – giordano