geom_boxplot表现得很奇怪?

时间:2015-07-09 13:15:22

标签: r ggplot2

我目前正在geom_boxplot中绘制一些数据(以毫秒为单位的响应时间)。

我有一个问题:

当您调整y轴上的限制时,它会忽略任何高于绘图和&的值。误差线计算?

数据本身包含超过20k条目,我不确定提供样本会有多大用处,因为这是一个更基于功能的问题。

以下是我使用的代码:

f <- function(x) {ans <- boxplot.stats(x)
data.frame(ymin = ans$conf[1], ymax = ans$conf[2], y = ans$stats[3])}





RTs.box = ggplot(mean.vis.aud.long, aes(x = Report, y = RTs, fill =Report)) + theme_bw() + facet_grid(Audio~Visual) 
RTs.box + 
geom_boxplot(alpha = .8) + geom_hline(yintercept = .333, linetype = 3, alpha = .8) + theme(legend.position = "none") + ylab("Reposponse Times ms") + scale_fill_grey(start=.4) +
 labs(title = expression("Visual Condition")) + theme(plot.title = element_text(size = rel(1)))+
 theme(panel.background = element_rect())+

 #line below for shaded confidence intervals    
 stat_summary(fun.data = f, geom = "crossbar", 
            colour = NA, fill = "skyblue", width = 0.75, alpha = .9)+
 ylim(0,1000)#this is the value that I change that results in different plots and shaded confidence intervals

以下是

的情节
  

ylim(0,1000)

enter image description here

并使用相同的数据,但将限制更改为

  

ylim(0,3000)

导致这个情节:

enter image description here

如您所见,箱图中的值似乎根据使用的限制进行调整。而不是绘制到极限的边缘,百分位数减少。当您比较两个网格左上方面板中的中间箱图时,这一点很明显。

可以看出,置信区间也存在差异。

这是否意味着geom_boxplot丢弃超出限制的数据或是否有我遗漏的东西?

我想在绘制boxplot&amp;时绘制所有数据。置信区间但限制了比例,因此可以清楚地看到。这意味着没有看到数据中的一些主要异常值,但出于我的目的,这很好。

有没有人对这里发生的事情有任何建议?如何绕过它而不会从我为计算选择的可视范围之外的数据中删除数值?

一如既往地谢谢。

2 个答案:

答案 0 :(得分:3)

?ylim“不在此范围内的观察将被完全删除而不会传递到任何其他图层。如果用NA值代替其中一个限制,则自动计算限制。”

如果要在不影响数据的情况下调整限制,请改用coord_cartesian

答案 1 :(得分:2)

函数ylim明显影响哪些数据点用于绘图。 为避免这种情况,您可能希望使用coord_cartesian,这不会更改基础数据。

尝试将ylim(0,1000)替换为:

coord_cartesian(ylim = c(0,1000))