2016-11-04 60 views
-2

使用stat_summary拿到意味着& CI到情節與箱線圖ggplot stat_summary當軸是有限的

p1 <- ggplot(data=df, aes(x=group, y=metric)) + 
    geom_boxplot(outlier.shape = NA, fill = fill, color=line, alpha = 0.5) + 
    stat_summary(fun.data=mean_cl_normal, aes(color = "Mean and CI")) 

除此之外一起,我也有一個要求,以限制y軸,以避免超出顯示值範圍。這是通過

p1 <- p1 + scale_y_continuous(limits =c(lower.limit,upper.limit)) 

但是,觀察結果是,當應用限制時,如圖所示的平均值與不應用限制的情況不同。這是預期的工作方式嗎?這似乎是唯一的stat_summary包括通過scale_y_continuous

適用範圍內的點有沒有一種方法我可以使用stat_summary包括在情節的限制之外的點軸限制應用於即使平均&詞?

+1

的可能的複製[如何設置在GGPLOT2ř地塊軸限制?](http://stackoverflow.com/questions/3606697/how-to-set-限制換軸合GGPLOT2-R-地塊) – cuttlefish44

回答

1

如果您提供樣本數據的可重現示例,它更容易爲您提供幫助。我想你想要的是coord_cartesian()

?lims說;

不在此範圍內的觀察結果將完全丟失,而不是 傳遞給任何其他層。 ......。要更改x或y軸限制 而不丟棄數據觀察值,請參閱coord_cartesian

set.seed(1); df <- data.frame(x = "a", y = c(rnorm(18, 12, 3), 1, 2, 3)) 

g <- ggplot(df, aes(x, y, fill = x)) + 
    geom_boxplot(alpha = 0.5) + 
    stat_summary(fun.data=mean_cl_normal, aes(x = 0.9), colour = "blue") + 
    theme(legend.position = "none") 

g           # no limits 
g + scale_y_continuous(limits = c(4, 17)) # outliers are dropped 
g + coord_cartesian(ylim = c(4, 17))  # outliers aren't dropped but not printed 

enter image description hereenter image description hereenter image description here