boxplot() di R: Cara Membuat BoxPlot di RStudio [Contoh]
boxplot() di R
boxplot() di R membantu memvisualisasikan distribusi data berdasarkan kuartil dan mendeteksi keberadaan outlier. Anda dapat menggunakan objek geometri geom_boxplot() dari pustaka ggplot2 untuk menggambar boxplot() di R.
Kami akan menggunakan dataset kualitas udara untuk memperkenalkan boxplot() di R dengan ggplot. Dataset ini mengukur kualitas udara New York dari Mei hingga September 1973. Dataset ini berisi 154 observasi. Kami akan menggunakan variabel berikut:
- Ozon: Variabel numerik
- Angin: Variabel numerik
- Bulan: Mei hingga September. Variabel numerik
membuat Box Merencanakan
Sebelum Anda mulai membuat boxplot() pertama Anda di R, Anda perlu memanipulasi data sebagai berikut:
- Langkah 1: Impor data
- Langkah 2: Hilangkan variabel yang tidak perlu
- Langkah 3: Konversi Bulan ke tingkat faktor
- Langkah 4: Buat variabel kategori baru yang membagi bulan dengan tiga level: awal, tengah, dan akhir.
- Langkah 5: Hapus observasi yang hilang
Semua langkah ini dilakukan dengan dplyr dan operator saluran pipa %>%.
library(dplyr) library(ggplot2) # Step 1 data_air <- airquality % > % #Step 2 select(-c(Solar.R, Temp)) % > % #Step 3 mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), #Step 4 day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Praktik yang baik adalah memeriksa struktur data dengan fungsi sekilas().
glimpse(data_air)
Keluaran:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
Ada NA dalam kumpulan data. Sebaiknya dihilangkan saja.
# Step 5 data_air_nona <-data_air %>% na.omit()
Diagram kotak dasar
Mari kita plot kotak R dasar () dengan distribusi ozon berdasarkan bulan.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Penjelasan Kode
- Simpan grafik untuk digunakan lebih lanjut
- box_plot: Anda menyimpan grafik ke dalam variabel box_plot Ini berguna untuk penggunaan lebih lanjut atau menghindari baris kode yang terlalu rumit
- Tambahkan objek geometris dari R boxplot()
- Anda meneruskan dataset data_air_nona ke ggplot boxplot.
- Di dalam argumen aes(), Anda menambahkan sumbu x dan sumbu y.
- Tanda + berarti Anda ingin R terus membaca kode tersebut. Tanda ini membuat kode lebih mudah dibaca dengan memecahnya.
- Gunakan geom_boxplot() untuk membuat diagram kotak
Keluaran:
Ubah sisi grafik
Anda dapat membalik sisi grafik.
box_plot + geom_boxplot()+ coord_flip()
Penjelasan Kode
- box_plot: Anda menggunakan grafik yang Anda simpan. Ini menghindari penulisan ulang semua kode setiap kali Anda menambahkan informasi baru ke grafik.
- geom_boxplot(): Membuat boxplot() di R
- coord_flip(): Membalik sisi grafik
Keluaran:
Ubah warna outlier
Anda dapat mengubah warna, bentuk, dan ukuran outlier.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Penjelasan Kode
- outlier.colour=”red”: Mengontrol warna outlier
- outlier.shape=2: Mengubah bentuk outlier. 2 mengacu pada segitiga
- outlier.size=3 : Mengubah ukuran segitiga. Ukurannya sebanding dengan jumlahnya.
Keluaran:
Tambahkan statistik ringkasan
Anda dapat menambahkan statistik ringkasan ke R boxplot().
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Penjelasan Kode
- stat_summary() memungkinkan penambahan ringkasan ke boxplot horizontal R
- Argumen fun.y mengontrol statistik yang dikembalikan. Anda akan menggunakan maksudnya
- Catatan: Statistik lain tersedia seperti min dan maks. Lebih dari satu statistik dapat ditampilkan dalam grafik yang sama
- geom = “point”: Plot rata-rata dengan sebuah titik
- size=3 : Ukuran titik
- color =”steelblue”: Warna titik
Keluaran:
Box Plot dengan Titik
Pada kotak plot horizontal R berikutnya, Anda menambahkan lapisan plot titik. Setiap titik mewakili sebuah observasi.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Penjelasan Kode
- geom_dotplot() memungkinkan penambahan titik ke lebar nampan
- binaxis='y': Mengubah posisi titik di sepanjang sumbu y. Secara default, sumbu x
- dotsize=1 : Ukuran titik
- stackdir='center': Cara menumpuk titik-titik: Empat nilai:
- "naik" (default),
- "turun"
- "tengah"
- “keseluruhan tengah”
Keluaran:
Kontrol Estetika Box Merencanakan
Ubah warna kotak
Anda dapat mengubah warna grup.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Penjelasan Kode
- Warna grup dikontrol dalam pemetaan aes(). Anda dapat menggunakan color=Month untuk mengubah warna kotak dan diagram kumis sesuai dengan bulan.
Keluaran:
Box plot dengan banyak kelompok
Dimungkinkan juga untuk menambahkan beberapa grup. Anda dapat memvisualisasikan perbedaan kualitas udara menurut hari pengukuran.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Penjelasan Kode
- Pemetaan aes() objek geometris mengontrol grup yang akan ditampilkan (variabel ini harus menjadi faktor)
- aes(fill= day_cat) memungkinkan pembuatan tiga kotak untuk setiap bulan di sumbu x
Keluaran:
Box Plot dengan Titik-Titik Bergetar
Cara lain untuk menunjukkan titik adalah dengan titik-titik yang bergetar. Ini adalah cara yang mudah untuk memvisualisasikan titik-titik dengan boxplot untuk data kategoris dalam variabel R.
Metode ini menghindari tumpang tindih data diskrit.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Penjelasan Kode
- geom_jitter() menambahkan sedikit pembusukan pada setiap titik.
- shape=15 mengubah bentuk titik. 15 mewakili kotak
- color = “steelblue”: Mengubah warna titik
- position=position_jitter(width = 0.21): Cara menempatkan titik-titik yang tumpang tindih. position_jitter(width = 0.21) artinya Anda memindahkan titik sebesar 20 persen dari sumbu x. Secara default, 40 persen.
Keluaran:
Terlihat perbedaan antara grafik pertama dengan metode jitter dan grafik kedua dengan metode titik.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Berkumai Box Merencanakan
Fitur menarik dari geom_boxplot() adalah fungsi boxplot berlekuk di R. Plot berlekuk mempersempit kotak di sekitar median. Tujuan utama dari plot kotak berlekuk adalah untuk membandingkan signifikansi median antar kelompok. Ada bukti kuat bahwa dua kelompok memiliki median yang berbeda ketika lekukan tidak tumpang tindih. Lekuk dihitung sebagai berikut:
dengan adalah interkuartil dan jumlah pengamatan.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Penjelasan Kode
- geom_boxplot(notch=TRUE): Membuat boxplot horizontal berlekuk R
Keluaran:
Ringkasan
Kita dapat meringkas berbagai jenis boxplot horizontal R dalam tabel di bawah ini:
Tujuan | Kode |
---|---|
Diagram kotak dasar |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
balikkan sisinya |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Plot kotak berlekuk |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box plot dengan titik-titik yang gelisah |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Juga Periksa: - Tutorial R untuk Pemula: Belajar Bahasa Pemrograman R