Visualizing Information can give us a very quick solution to problems. We can get clarity or the answer to a simple problem very quickly - David Mc Candless

Pada tutorial ini peneliti akan memperkenalkan beberapa function untuk me-visualisasikan data dalam bentuk grafik. Masing-masing grafik memiliki makna dan cara interpretasi nya masing-masing.

Visualisasi ini dapat berupa function dasar (base) maupun menggunakan package. Function-function tersebut antara lain: plot(), barplot(), histogram(), dan boxplot(). Sedangkan package yang biasa digunakan adalah ggplot2.

Sebelum menjelaskan lebih jauh mengenai visialisasi data, peneliti akan menjelaskan data yang akan digunakan. Data yang digunakan adalah data(iris). Berikut adalah summary dari data yang digunakan:

data("iris")
iris %>% summary()
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Data iris terdiri atas 5 variabel, yaitu Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Spesies. Empat variabel pertama merupakan variabel numerik. Sedangkan variabel Spesies merupakan variabel kategorik.

Data yang digunakan dapat berbentuk Wide table dan Long table.

iris %>% head(15)
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa
## 11          5.4         3.7          1.5         0.2  setosa
## 12          4.8         3.4          1.6         0.2  setosa
## 13          4.8         3.0          1.4         0.1  setosa
## 14          4.3         3.0          1.1         0.1  setosa
## 15          5.8         4.0          1.2         0.2  setosa

Data dalam bentuk Wide table dapat dilihat sebagai berikut:

iris_long <- iris %>% gather(fitur, value, Sepal.Length:Petal.Width)
iris_long %>% head(15)
##    Species        fitur value
## 1   setosa Sepal.Length   5.1
## 2   setosa Sepal.Length   4.9
## 3   setosa Sepal.Length   4.7
## 4   setosa Sepal.Length   4.6
## 5   setosa Sepal.Length   5.0
## 6   setosa Sepal.Length   5.4
## 7   setosa Sepal.Length   4.6
## 8   setosa Sepal.Length   5.0
## 9   setosa Sepal.Length   4.4
## 10  setosa Sepal.Length   4.9
## 11  setosa Sepal.Length   5.4
## 12  setosa Sepal.Length   4.8
## 13  setosa Sepal.Length   4.8
## 14  setosa Sepal.Length   4.3
## 15  setosa Sepal.Length   5.8

plot()

plot() merupakan function paling sederhana untuk membuat plot.

Parameter yang sering digunakan: * type: tipe dari plot. * xlab: label dari sumbu X * ylab: label dari sumbu Y * main: judul plot * col: warna yang digunakan pada plot. dapat berupa warna ataupun nama variabel.

Penjelasan lebih lengkap mengenai parameter yang digunakan dapat dilihat pada dokumentasi package.

plot(x)

Function plot() dapat digunakan dengan satu parameter, dimana x adalah variabel numerik. Visualisasi yang dihasilkan berupa scatter plot dimana sumbu x menunjukkan indeks dari data dan y adalah nilai dari variabel.

plot(iris$Sepal.Length, type = 'b')

Dari plot diatas, dapat dilihat bahwa nilai menyebar antara nilai 4 sampai dengan 8.

plot(x,y)

Function plot() dapat digunakan dengan dua parameter, dimana x dan y keduanya adalah variabel numerik. Visualisasi yang dihasilkan berupa scatter plot dimana sumbu x menunjukkan variabel pada parameeter pertama dan y adalah variabel pada parameter kedua.

plot(iris$Sepal.Length, iris$Petal.Length, main='Hubungan antara Petal Lenght dan Sepal Lenght', xlab='Sepal Length', ylab='Petal Length')

Berdasarkan visualisasi diatas, dapat dilihat bahwa terdapat hubungan positif antara Petal Lenght dan Sepal Lenght.

Jika dilihat lebih detail, terdapat satu kumpulan observasi yang terpisah dari observasi lainnya, yaitu pada kanan bawah (nilai observasi rendah di kedua variabel). Hal ini memungkinkan peneliti menduga terdapat variabel lain yang mempengaruhi kedua nilai tersebut. Maka dari itu, peneliti menambah warna pada yang mewakiliki Spesies pada visualisasi diatas.

plot(iris$Sepal.Length, iris$Petal.Length, main='Hubungan antara Panjang Daun Mahkota (Petal Lenght) dan Panjang Panjang Daun Kelopak (Sepal Lenght)', xlab='Sepal Length', ylab='Petal Length', col=iris$Species)

Dari visualisasi tersebut, dapat dilihat bahwa Spesies bunga juga mempengaruhi nilai Petal Lenght dan Sepal Length.

plot(data)

Function plot() dapat digunakan dengan satu parameter, berupa data. Visualisasi yang dihasilkan berupa scatter plot kombinasi dari seluruh variabel pada data tersebut.

plot(iris)

plot(iris[,1:4], col=iris$Species)

Dengan menggunakan diatas, peneliti dapat melihat gambaran data secara menyeluruh.

barplot()

Parameter yang sering digunakan: xlab: label dari sumbu X ylab: label dari sumbu Y main: judul plot col: warna yang digunakan pada plot. dapat berupa warna ataupun nama variabel. horiz: boolean parameter yang menunjukkan apakah suatu barplot berupa grafik horizontal/vertikal

Penjelasan lebih lengkap mengenai parameter yang digunakan dapat dilihat pada dokumentasi function.

t <- table(iris$Species)
barplot(t)

Terlihat bahwa banyak observasi untuk masing-masing kategori spesies bunga adalah sama, yaitu sebanyak 50 observasi.

hist()

Visualisasi berupa grafik batang yang menunjukkan sebaran dari data kontinu.

Parameter yang sering digunakan : * xlab: label dari sumbu X * ylab: label dari sumbu Y * main: judul plot * col: warna yang digunakan pada plot. dapat berupa warna ataupun nama variabel. * breaks: jumlah binning yang digunakan

hist(iris$Sepal.Length, breaks = 50)

boxplot()

Visualisasi yang dapat digunakan untuk melihat sebaran data numerik berdasarkan nilai median dan quartilnya, dapat pula digunakan untuk melihat nilai outlier. Function ini dapat digunakan untuk satu atau lebih variabel kontinu.

boxplot(iris$Sepal.Width)

boxplot(iris[,1:4])

headtmap()

Dapat digunakan untuk me-visualisasikan hubungan antar beberapa variabel. Visualisasi ini juga dilengkapi dengan bagan pohon (tree) yang menunjukkan cluster antar observasi, dimana observasi yang berdekatan berada pada satu cluster (memiliki kesamaan).

heatmap(as.matrix(iris[1:30,1:3]))

library(corrplot)

corrplot()

Function ini digunakan untuk melihat korelasi antar variabel numerik. Function ini dapat diakses melalui package corrplot. Dengan menggunakan parameter method, kita dapat mengatur bagaimana visualisasi yang akan digunakan, dapat berupa "circle" (default), "square", "ellipse", "number", "pie", "shade" dan "color".

library(corrplot)
## Warning: package 'corrplot' was built under R version 3.6.3
## corrplot 0.84 loaded
corrplot(cor(iris[,1:4]))

corrplot(cor(iris[,1:4]), method = "pie")

corrplot()

Package corrplot juga menyediakan function untuk mengunakan dua macam visualisasi dalam satu plot, yaitu menggunakan function corrplot.mived()

corrplot.mixed(cor(iris[,1:4]), lower = "number", upper = "shade")

par()

Untuk memudahkan pengguna R dalam melakukan visualisasi beberapa plot secara bersama-sama, yaitu menggunakan function par()

Parameter yang sering digunakan: mfrow: jumlah plot pada baris dan colom nya. mfrow=c(2,3) menunjukkan visualisasi 6 grafik dalam 2 baris dan 3 kolom.

par(mfrow=c(2,3))

plot(iris$Sepal.Length)
plot(iris$Petal.Width, col=iris$Species)
hist(iris$Sepal.Length, breaks = 50, main='')
boxplot(iris$Sepal.Width)
barplot(t)
boxplot(iris$Petal.Length)