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.

comments powered by Disqus