Bila buat bar plot cara asas di R atau menggunakan pakej ggplot2
, susunan levels di
x-aksis disusun semula menggikut abjad. Oleh sebab itu sekiranya ingin menyusun
mengikut aturcara tertentu, levels di x-aksis harus disusun semula. Pelbagai cara
untuk menyusun variable boleh dibuat contohnya menggunakan order
(dari “base”) dan
reorder
(dari “stat”). Kedua-dua fungsi ini sudah tersedia di R tanpa perlu memuat
turun sebarang pakej.
Cara reorder
adalah yang paling mudah tetapi agak lambat berbanding order
sekiranya
ingin dipakai untuk fungsi di Big Data.
Untuk memakai cara order
dari “base”. Dengan menggunakan with
akan lebih
mempercepatkan proses:
Susun ketinggian bar
Cara untuk menyusun bar menaik atau menurun
## data
data <- data.frame(a = LETTERS[1:10], b = rnorm(10, mean = 30, sd = 5),
c = runif(10, 10, 50), d = letters[1:10],
e = sample(1:100, size = 10, replace = FALSE))
## susun "a" mengikut nilai "b" menaik
data$a <- factor(data$a, levels = data$a[order(data$b)])
## susun "a" mengikut nilai "b" menurun
data$a <- factor(data$a, levels = data$a[order(data$b, decreasing = TRUE)])
## Buat plot
library(ggplot2)
data2 <- copy(data)
ggplot(data2, aes(a, b)) + geom_bar(stat = 'identity')
Bila menggunakan with
, penulisan kode juga akan lebih mudah. Contohnya:
data$d <- with(data2, factor(d, levels = d[order(e, decreasing = FALSE)]))
Nama di aksis
Sekiranya ingin menyusun x-aksis mengikut cara lain selain dari nilai menurun atau
menaik melalui pilihan decreasing = TRUE
, boleh juga menetapkan susunan cara
manual. Bila memakai cara ini harus memberikan nama susunan dengan tepat seperti nama
di variable.
## contoh data
data3 <- data.frame(a = LETTERS[1:4], b = sample(20:50, size = 4))
## Susun cara sendiri
data3$a <- factor(data3$a, levels = c("B", "D", "A", "C"))
## plot
ggplot(data3, aes(a, b)) + geom_bar(stat = 'identity')
Untuk memakai cara reorder
dari “stat”:
## pakai data sama seperti di atas cumpa pakai factor "d" dan nilai "e"
data$d <- reorder(data$d, data$e)
Cara lain untuk menyusun semula faktor variable menggikut susunan tertentu boleh juga
dilaksanakan dengan menggunakan fungsi fct_reorder
atau fct_reorder2
dari pakej
fotcats
yang boleh dibaca di sini. Pakej ini juga ialah sebahagian daripada pakej
tidyverse
yang mengandungi pakej-pakej lain seperti dplyr
dan ggplot2
.