6

我在 R 中使用 facet_grid 绘制 5 个不同组的 RT 数据。我想强调每组 5% 到 95% 之间的数据。

使用下面的代码,我使用的是整个数据框的百分位数,而不是每个组的百分位数。关于我如何仍然使用 facet_grid 并在图中突出显示每个组的唯一百分位数的任何想法。

rect <- data.frame (xmin=quantile(ss$RT, c(0.05)), 
                    xmax=quantile(ss$RT, c(0.95)), 
                    ymin=-Inf, ymax=Inf)


qplot(prevRT, RT, group=ss, color = prim, 
      geom = c("smooth"), 
      method="lm", data =ss) + 
   facet_grid(~ Groupe) + 
   geom_rect(data=rect, 
             aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax), 
             color="grey20", alpha=0.5, inherit.aes = FALSE)
4

1 回答 1

2

感谢 DWin 的建议,我使用ave分别为每个组查找 xmin 和 xmax,并将其直接合并到绘图命令中。

可能有一种更优雅的方式来做到这一点(欢迎提出建议),但它确实有效。

qplot(prevRT, RT, group=ss, color = prim, 
 geom = c("smooth"), 
 method="lm", data =ss) + 
 facet_grid(~ Groupe) + 
 geom_rect(data=ss, 
      aes(xmin=ave(ss$RT, ss$Groupe, FUN = function(x)quantile(x,c(0.05))),      
      xmax=ave(ss$RT, ss$Groupe, FUN = function(x)quantile(x,c(0.95))),
      ymin=-Inf,ymax=Inf), color="green", alpha=1/280, inherit.aes = FALSE)

在此处输入图像描述

于 2012-09-19T17:36:20.693 回答