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.