繁体   English   中英

如何不绘制geom_jitter的所有点?

[英]How not to plot all points of geom_jitter?

我还有一个关于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)

在数据集z添加is.outlier列(当且仅当该值是异常值时才为TRUE )。 如果您想对异常值以外的所有事物执行某项操作,请在非异常值子集中添加数据参数,例如,

geom_jitter(some_stuff, data = subset(z, !is.outlier))

不要做不同的事情,异常值和非离群值,使用is.outlier在你的审美,比如,

geom_point(aes(size = is.outlier + 1))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM