在抖动的箱形图中更改所有异常值的形状

时间:2013-10-03 14:49:11

标签: r ggplot2 shapes outliers

我环顾网络,发现了许多关于抖动和改变异常值形状的东西,但似乎无法找到关于这个特定问题的任何内容。

我想要一个带有抖动数据点的黑白盒子图 - 我可以做到。

我还想改变异常值的形状。虽然有多个案例得分为4,但其中只有一个变为空心圆。

我认为如果某个特定级别的数据点被视为异常值,其余数据点也会被视为异常值。

这是编码错误还是我在统计课程中遗漏了一些东西? 如果它是一个编码的东西我怎么能让它们全部空洞?

显然我的“声望”需要10才能附上图像!我希望没有它,这是有道理的

这是我的代码:

plot <- ggplot(phase2.3, aes(Group, Score))

plot + geom_point (position = position_jitter(w = 0.1, h = 0.2)) + 
 geom_boxplot (outlier.shape = 1) + xlab("Group") + theme_bw(20)

1 个答案:

答案 0 :(得分:0)

您可能需要自己计算哪些点超出范围。以下是geom_boxplot标准示例的扩展,其中显示了如何使用plyr查找异常值。

# load packages
require(plyr)
require(ggplot2)
# find outliers
df <- ddply(mtcars, "cyl", function(x){
  iqr <- quantile(x[,"mpg"], c(.25, .75)) # inter-quartile-range
  whisker <- iqr+c(-1.5, 1.5)*diff(iqr)   # whiskers-range
  x[,"shape"] <- ifelse(x[,"mpg"] < whisker[1] | x[,"mpg"]>whisker[2], 1, 16)
  return(x)
})
# plot
p <- ggplot(df, aes(factor(cyl), mpg))
p + geom_boxplot() # without jittering
# adding shape manualy
p + geom_boxplot(outlier.size=-Inf) + 
  geom_jitter(aes(shape=factor(shape))) + 
  scale_shape_manual(guide=FALSE, values=c("16"=16, "1"=1))