これは(非外れ値のためのNAを有する色変数を割り当てる)上記よりもわずかに異なるアプローチであり、上限と下限の計算のための補正を含みます。
デフォルトの「異常値」の定義は、25分の75分の1/4〜1.5倍の範囲内の点です(IQR)。 (tidyverse機能をdplyr /使用)上部/下限外れ値を計算
set.seed(1)
a <- data_frame(x= factor(rep(1:4, each = 1000)),
V8 = c(rnorm(1000, 25, 4),
rnorm(1000, 50, 4),
rnorm(1000, 75, 4),
rnorm(1000, 100, 4)))
:
いくつかのサンプルデータを生成
library(tidyverse)
a <- a %>% group_by(x) %>%
mutate(outlier.high = V8 > quantile(V8, .75) + 1.50*IQR(V8),
outlier.low = V8 < quantile(V8, .25) - 1.50*IQR(V8))
が上位/下位ポイントの色を定義する:
a <- a %>% mutate(outlier.color = case_when(outlier.high ~ "red",
outlier.low ~ "steelblue"))
分類されていないケースは、カラーの「NA」、 ndはプロットに現れません。
dplyr::case_when()
関数は、それが動作しない場合ので、ここでのベースの代替である(githubの開発バージョンenter link description hereに> 0.5を必要とするかもしれない)、まだ完全に安定ではない:
a$outlier.color <- NA
a$outlier.color[a$outlier.high] <- "red"
a$outlier.color[a$outlier.low] <- "steelblue"
プロット:
a %>% ggplot(aes(x, V8)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(color = a$outlier.color, width = .2) + # NA not plotted
theme_bw() + coord_flip()
再現可能な例を教えてください。 –