Visualisasi Data

Instalasi awal R sudah memiliki fungsi-fungsi plotting untuk visualisasi data. Tapi kebanyakan pengguna R sekarang lebih menyukai plotting menggunakan package ggplot2 yang merupakan bagian dari metapackage tidyverse. Karenanya, buku ini fokus menjelaskan pembuatan grafik dengan package ggplot2.

Package ggplot2 sudah ikut terinstall ketika menginstall metapackage tidyverse. Dengan memuat package tidyverse, package ggplot2 juga ikut termuat bersama package lain seperti dplyr yang juga akan digunakan pada bab ini.

library(tidyverse)

Jika anda telah menjalankan seluruh langkah di bab Menyiapkan Data, anda sudah memiliki file datakab.rds yang akan digunakan dalam bab ini. Jika anda belum memiliki file tersebut di folder kerja anda, download dulu file tersebut dengan menghapus tanda komentar (#) di depan perintah download.file

# download.file("https://github.com/msaidf/statek/raw/master/content/datakab.rds", "datakab.rds")
datakab = readRDS('datakab.rds')

options(repr.plot.width = 5, repr.plot.height = 4)

Diagram Garis

  • gunakan geom_line untuk diagram garis
  • gunakan aestetik col untuk membedakan grafik dengan warna garis

pov_java = datakab %>% filter(str_detect(region_name, 'Jawa')) %>% 
            ggplot(aes(x = year)) + 
            geom_line(aes(y = poverty_rate, col = region_name))
pov_java

png

Histogram

  • Gunakan geom_hist untuk menggambarkan distribusi frekuensi variabel dengan histogram.
  • facet_wrap bisa digunakan untuk memisahkan grafik berdasar nilai variabel tertentu.
pov_hist = datakab %>%
            ggplot(aes(poverty_rate)) + 
            geom_histogram() +
            facet_wrap(~ year)
pov_hist

png

Grafik di atas walau sudah cukup jelas, bisa dipercantik dengan menggunakan aestetik fill untuk membedakan warna pengisi histogram, tidak seperti col yang hanya mewarnai garis batasnya.

  • Jadikan year sebagai faktor dengan perintah as.factor agar warna yang digunakan adalah multi warna, bukan cuma gradasi dari satu warna
  • Jika nilai unik variabel yang dijadikan warna terlalu banyak, legenda keterangan warna akan memenuhi atau bahkan tidak muat ditampilkan di grafik. Lagipula di sini legenda warna tidak lagi perlu, karena warna itu hanya untuk memperindah, sementara informasi tahun sudah ada labelnya di tiap grafik. Karenanya, legenda warna itu bisa dihilangkan saja dengan theme(legend.position = 'none')
pov_hist + geom_histogram(aes(fill = as.factor(year))) + theme(legend.position = 'none')

png

Scatter Plot

Untuk menampilkan seluruh titik yang menghubungkan nilai kedua variabel, gunakan geom_point

hdi_pov_point = datakab %>% 
                 ggplot(aes(human_development_index, poverty_rate)) + 
                 geom_point()
hdi_pov_point

png

Gunakan geom_smooth untuk menambahkan garis trend secara otomatis. geom_smooth secara default menggunakan metode loess untuk menggambar garis trend.

(hdi_pov_smooth = .Last.value + geom_smooth())

png

Gunakan argumen method = lm untuk menggambarkan garis trend dengan metode regresi linier. Standard error bisa dihilangkan dengan argumen se = FALSE.

(hdi_pov_lm = hdi_pov_point + geom_smooth(method = 'lm', se = F))

png

  • grafik terakhir dapat disimpan ke file dengan ggsave
  • ggsave juga dapat memilih grafik yang sudah disimpan sebagai obyek
ggsave('hdi_pov_lm.png')
ggsave('hdi_pov_smooth.pdf', hdi_pov_smooth)

Mengubah jadi Grafik Interaktif

Gunakan plotly::ggplotly untuk mengubah grafik ggplot menjadi interaktif.

# install.packages('plotly')
pov_java %>% plotly::ggplotly()

<!doctype html>