我还有一个关于geom_boxplot的问题。 是否有可能不将geom_jitter绘制为异常值?像这样,我可以在一种颜色中使用异常值,在另一种颜色中使用抖动点
aa <- c(rep("A1",5), rep("A2",3), rep("A3",4), rep("A4",9), rep("A5",3))
aa <- as.factor(aa)
per <- runif(length(aa), min=0, max=100)
per <- trunc(per)
z <- data.frame(x=aa,y=per)
z$ch <- NA
z[z$x %in% c("A1","A2"), "ch"] <- "string1"
z[z$x %in% c("A3"), "ch"] <- "string2"
z[z$x %in% c("A4", "A5"), "ch"] <- "string3"
z$ch <- as.factor(z$ch)
z$x = with(z, factor(x, rev(levels(x))))
p <- ggplot(z, aes(x, y, fill = ch)) +
geom_boxplot(size = 0.2, position = "dodge", outlier.colour = "red", outlier.shape = 16, outlier.size = 2) +
geom_jitter(size=1,position = "dodge") +
opts(legend.position = "right") +
scale_colour_hue("variable") +
coord_flip()
print(p)
答案 0 :(得分:0)
将列is.outlier
添加到数据集z
(当且仅当该值为异常值时为TRUE
。如果你想对除异常值之外的所有事情做一些事情,包括一个带有非异常值子集的数据参数,例如,
geom_jitter(some_stuff, data = subset(z, !is.outlier))
对异常值和非异常值做不同的事情,在你的审美中使用is.outlier
,例如,
geom_point(aes(size = is.outlier + 1))