Visualisasi Data

  • Visualisasi data memberikan pemahaman awal mengenai data
  • Visualisasi data membantu menyampaikan informasi hasil analisis kepada target pembaca

Jenis-jenis Diagram

  • Pie-chart / diagram lingkaran
  • Bar-chart / diagram batang
  • Histogram
  • Boxplot
  • Scatterplot / diagram pencar
  • Line chart

R package untuk visualisasi

  • Basic R tersedia fungsi plot() untuke membuat diagram
  • Beberapa package juga tersedia seperti:
    • ggplot2: membuat plot
    • GGally: perluasan dari ggplot2
    • ggmap : membuat peta
    • Plotly: membuat plot interactive web-based
  • Untuk menginstall package bisa menggunakan perintah install.pacakges()

ggplot2

  • Package ggplot2 adalah alat yang canggih untuk mengkonsutruksi grafis statistika berdasarkan ‘Grammar of Graphics’
  • Bahasa grafik ggplot2 memudahkan untuk memandang grafik sebagai susunan layer (titik, garis, region) dimana masing-masing ditampilkan dengan berbagai atribut grafis.
  • Package ggplot2 merupakan bagian dari tidyverse yang digunakan untuk manipulasi data

Grammar of Graphics

Ide Utama: Kita bisa menentukan sendiri blok penyusun plot dan menggabungkannya untuk menjadi satu tampilan grafis yang kita inginkan.

Blok penyusun grafik meliputi: - data - aesthetic mapping - geometric object - statistical transformation - scales - coordinate system - position adjustment - faceting

Komponen utama ggplot

  1. Data. Data frame dimasukkan kedalam fungsi ggplot sebagai sumber data yang akan dibuatkan grafiknya
  2. Mapping. Pemetaan atribut data dan karakteristik estetika grafis
  3. Geometry. Bentuk representasi dari karakteristik grafis

Template grafis secara umum:

ggplot( data = <DATA>) + <geom_function>(mapping = aes(<MAPPINGS>)

aesthetic “aes” dapat diartikan “sesuatu yang terlihat”, seperti:

  • position (pada sumbu x dan y)
  • color
  • fill
  • shape
  • linetype
  • size

Geometric “geom” adalah bentuk plot yang akan dibuat untuk merepresentasikan data, seperti:

  • titik (geom_point)
  • garis (geom_line)
  • boxplot (geom_boxplot)

Data mpg

data mpg adalah data mengenai kajian penggunaan bahan bakar ekonomis dari berbagai 38 model mobil tahun 1999-2008

  • hwy: highway miles per galon
  • displ: engine displacement, in litres
library(ggplot2)
data(mpg)
head(mpg)
## # A tibble: 6 x 11
##   manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class 
##   <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr> 
## 1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compa~
## 2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compa~
## 3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compa~
## 4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compa~
## 5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compa~
## 6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compa~

bagaimana hubungan antara hwy dan displ?

Scatterplot

plot() perintah dasar membuat scatterplot tersedia di R

plot(mpg$displ,mpg$hwy)

scatterplot dengan menggunakan objek geometri titik (geom_point())

#ggplot(mpg) + geom_point(aes(x=displ, y=hwy)) # sintaks yang sama dengan bawah
ggplot(data = mpg) + geom_point(mapping = aes(x=displ, y=hwy))

Menambahkan variabel lain menggunakan aesthetic ke dalam scatterplot:

memetakan warna (color) ke variabel “class”, yaitu mengelompokkan data berdasarkan variabel “class” dengan memberi warna yang berbeda

ggplot(mpg)+geom_point(aes(x=displ, y=hwy, color = class))

Memetakan bentuk (shape) ke variabel “class”

ggplot(mpg)+geom_point(aes(x=displ, y=hwy, shape = class))
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 7. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 62 rows containing missing values (geom_point).

Memetakan transparansi (alpha) ke variabel “class”

ggplot(mpg)+geom_point(aes(x=displ, y=hwy, alpha = class))
## Warning: Using alpha for a discrete variable is not advised.

Memetakan ukuran (size) ke variabel “class”

ggplot(mpg)+geom_point(aes(x=displ, y=hwy, size = class))
## Warning: Using size for a discrete variable is not advised.

Variabel dapat dipetakan ke beberapa atribut aesthetics

ggplot(mpg)+geom_point(aes(x=displ, y=hwy, color = class, shape = class))
## Warning: The shape palette can deal with a maximum of 6 discrete values because
## more than 6 becomes difficult to discriminate; you have 7. Consider
## specifying shapes manually if you must have them.
## Warning: Removed 62 rows containing missing values (geom_point).

Variabe dipetakan ke aesthetics menggunakan argumen aes(), sementara fixed aesthetics ditulis diluar aes()

ggplot(mpg)+geom_point(aes(x=displ, y=hwy), color = "red")

Latihan

  • Apa yang salah dengan kode R ini? Mengapa titik-titiknya tidak berwarna biru?

ggplot(data=mpg) + geom_point(mapping=aes(x=displ, y=hwy, color="blue"))

  • Apa yang terjadi ketika variabel kontinume dipetakan ke color, size, dan shape. Bagaimana aesthetic ini berbeda jika dibandingkan antara variabel kontinum dan kategorik?

  • Apa yang terjadi jika kita memetakan nilai aesthetic ke sesuatu lain selain nama variabel, seperti aes(color=displ<5)?

FACETING

Faceting adalah teknik untuk membuat beberapa subplot yang menunjukkan subset yang berbeda dari data. Salah satu teknik faceting adalah facet_grid yang memungkinkan untuk menspesifikasi sampai dua variable: satu untuk kolom grid dan satu untuk baris grid

ggplot(mpg) + geom_point(aes(x=displ, y=hwy)) + 
  facet_grid(~ class)

FACETING

ggplot(mpg) + geom_point(aes(x=displ, y=hwy)) + 
  facet_grid(year ~ class)

geom_smooth()

Merepresentasikan titik-titik data dengan garis yang diperhalus dengan geom_smooth()

ggplot(mpg) + geom_smooth(aes(x=displ, y=hwy))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

geom_smooth()

Menghapus area abu-abu atau selang kepercayaan geom_smooth()

ggplot(mpg) + geom_smooth(aes(x=displ, y=hwy), se = FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Menambahkan layer titik data pada grafik sebelumnya

ggplot(mpg) + geom_smooth(aes(x=displ, y=hwy), se = FALSE) +
            geom_point(aes(x=displ, y=hwy))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Memetakan variabel drv pada linetype

ggplot(data = mpg) +  
  geom_smooth(aes(x = displ, y = hwy, linetype=drv), se = FALSE)  
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Memetakan variabel drv pada linetype

ggplot(data = mpg) +  
  geom_smooth(aes(x = displ, y = hwy, linetype=drv), se = FALSE) +
  geom_point(aes(x = displ, y = hwy, color=drv), se = FALSE)
## Warning: Ignoring unknown parameters: se
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'