Cara memberi label outlier pada plot kotak di ggplot2
Tutorial ini memberikan contoh langkah demi langkah tentang cara memberi label outlier pada plot kotak di ggplot2.
Langkah 1: Buat bingkai data
Pertama, mari buat kerangka data berikut yang berisi informasi tentang poin yang dicetak oleh 60 pemain bola basket berbeda di tiga tim berbeda:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c('A', 'B', 'C'), each= 20 ),
player=rep(LETTERS[1:20], times= 3 ),
points=round(rnorm(n=60, mean=30, sd=10), 2))
#view head of data frame
head(df)
team player points
1 AA 23.74
2AB 31.84
3 AC 21.64
4AD 45.95
5 AE 33.30
6 FY 21.80
Catatan : Kami menggunakan fungsi set.seed() untuk memastikan contoh ini dapat direproduksi.
Langkah 2: Tentukan fungsi untuk mengidentifikasi outlier
Di ggplot2, sebuah observasi didefinisikan sebagai outlier jika memenuhi salah satu dari dua persyaratan berikut:
- Pengamatannya 1,5 kali rentang antarkuartil di bawah kuartil pertama (Q1)
- Pengamatannya 1,5 kali rentang antarkuartil di atas kuartil ketiga (Q3).
Kita dapat membuat fungsi berikut di R untuk memberi label observasi sebagai outlier jika memenuhi salah satu dari dua persyaratan berikut:
find_outlier <- function (x) {
return (x < quantile(x, .25) - 1.5*IQR(x) | x > quantile(x, .75) + 1.5*IQR(x))
}
Terkait: Cara Menafsirkan Rentang Interkuartil
Langkah 3: Beri label outlier pada plot kotak di ggplot2
Kemudian kita dapat menggunakan kode berikut untuk memberi label outlier pada plot kotak di ggplot2:
library (ggplot2)
library (dplyr)
#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
group_by(team) %>%
mutate(outlier = ifelse(find_outlier(points), points, NA))
#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
geom_boxplot() +
geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 )
Perhatikan bahwa dua outlier diberi label pada grafik.
Outlier pertama adalah pemain dari Tim A yang mencetak 7,85 poin dan outlier lainnya adalah pemain dari Tim B yang mencetak 10,11 poin.
Perhatikan bahwa kita juga dapat menggunakan variabel lain untuk memberi label outlier ini.
Misalnya, kita dapat menukar poin pemain dalam fungsi mutate() untuk memberi label outlier berdasarkan nama pemain:
library (ggplot2)
library (dplyr)
#add new column to data frame that indicates if each observation is an outlier
df <- df %>%
group_by(team) %>%
mutate(outlier = ifelse(find_outlier(points), player, NA))
#create box plot of points by team and label outliers
ggplot(df, aes(x=team, y=points)) +
geom_boxplot() +
geom_text(aes(label=outlier), na. rm = TRUE , hjust= -.5 )
Outlier tim A kini diberi label N dan outlier tim B kini diberi label D , karena label tersebut mewakili nama pemain yang memiliki poin outlier.
Catatan : Argumen hjust di geom_text() digunakan untuk mendorong label secara horizontal ke kanan agar tidak tumpang tindih dengan titik plot.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di ggplot2:
Cara mengubah ukuran font di ggplot2
Cara menghapus legenda di ggplot2
Cara memutar label sumbu di ggplot2