R ggplot2 - geom_histogram:由于限制了y尺度,在图中删除了水平/颜色

时间:2013-06-20 10:37:52

标签: r ggplot2

我每年都有一定数量的独特患者属于三个级别之一。我想绘制每年三个级别的相对频率分布。假设80%的患者标记为C,另一名患者标记为A和B.由于大多数患者为C,因此A和B的分布不可见。所以,我改变了y轴。我用ggplot得到了以下问题:A和B的彩色列显示但是对于C它从图中消失了。 我在这里做了一个例子:

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 个答案:

答案 0 :(得分: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