未使用geom_jitter的ggplot箱线图中为何出现散点?
箱线图未添加geom_jitter却出现散点的原因
这些散点不是额外统计值,而是箱线图默认展示的异常值(Outliers),具体原因如下:
- 箱线图的标准绘制逻辑会自动识别并标记异常点:
- 箱线图的上须边界为
Q3 + 1.5*IQR(Q3是第三四分位数,IQR为四分位距) - 下须边界为
Q1 - 1.5*IQR(Q1是第一四分位数) - 所有超出这个上下须范围的数据点,都会被判定为异常值,并以散点形式自动显示在箱线图上
- 箱线图的上须边界为
- 你代码里的
ylim(0, 50)只会截断y轴显示范围,落在0-50区间内的异常值依然会被geom_boxplot绘制出来
如何关闭异常点显示
如果不需要显示这些异常散点,可以在geom_boxplot()中添加outlier.shape = NA参数:
pelaChl_bxp <- ggplot(data = phyto_plankton_tbl, aes(x= time, y = PelaChl, fill = trt)) + geom_boxplot(outlier.shape = NA) + ylim(0, 50) + scale_fill_manual(values=cbPalette) + theme_bw()
代码小提示
你数据处理阶段的这段代码没有赋值给原变量,相当于没有生效:
phyto_plankton_tbl %>% mutate( block = as.factor(block), trt = factor(trt, labels = c("-P&-F", "+P/-F", "+P/+F", "-P/+F")))
需要修改为赋值形式,才能正确更新trt的标签和block的类型:
phyto_plankton_tbl <- phyto_plankton_tbl %>% mutate( block = as.factor(block), trt = factor(trt, labels = c("-P&-F", "+P/-F", "+P/+F", "-P/+F")))
内容的提问来源于stack exchange,提问作者matsDerErste
相关产品推荐
相关产品推荐

