Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : Teknik Informatika

Fakultas : Sains dan Teknologi


VISUALISASI DATA

Visualisasi data merupakan bagian yang sangat penting untuk mengkomunikasikan hasil analisa yang telah kita lakukan. Selain itu, komunikasi juga membantu kita untuk memperoleh gambaran terkait data selama proses analisa data sehingga membantu kita dalam memutuskan metode analisa apa yang dapat kita terapkan pada data tersebut.

R memiliki library visualisasi yang sangat beragam,baik yang merupakan fungsi dasar pada R maupun dari sumber lain seperti ggplot dan lattice. Seluruh library visualisasi tersebut memiliki kelebihan dan kekurangannya masing-masing.

3.1 Visualisasi Data Menggunakan Fungsi Plot()

Fungsi plot() merupakan fungsi umum yang digunakan untuk membuat plot pada R. Format dasarnya adalah sebagai berikut:

plot(x, y, type=“p”)

Catatan
  • x dan y : titik koordinat plot Berupa variabel dengan panjang atau jumlah observasi yang sama.
  • type : jenis grafik yang hendak dibuat.

Nilai yang dapat dimasukkan antara lain: type=“p” : membuat plot titik atau scatterplot. Nilai ini merupakan default pada fungsi plot().

type=“l” : membuat plot garis.

type=“b” : membuat plot titik yang terhubung dengan garis.

type=“o” : membuat plot titik yang ditimpa oleh garis.

type=“h” : membuat plot garis vertikal dari titik ke garis y=0.

type=“s” : membuat fungsi tangga.

type=“n” : tidak membuat grafik plot sama sekali, kecuali plot dari axis. Dapat digunakan untuk mengatur tampilan suatu plot utama yang diikuti oleh sekelompok plot tambahan.

Untuk lebih jelasnya mari kita membuat contoh syntak beserta hasil dari datanya:

# membuat vektor data

x <- c(1:10); y <- x^2
# membagi jendela grafik menajdi 2 baris dan 4 kolom

par(mfrow=c(2,4))

# loop

type <- c("p","l","b","o","h","s","n")
for (i in type){
  plot(x,y, type= i,
       main= paste("type=", i))
}

Pada contoh selanjutnya kita akan mencoba membuat kembali data yang akan kita plotkan. Data pada contoh kali ini merupakan data suatu fungsi matematika. Berikut adalah sintaks yang digunakan:

set.seed(123)
x <- seq(from=0, to=10, by=0.1)
y <- x^2*exp(-x/2)*(1+rnorm(n=length(x), mean=0, sd=0.05))
par(mfrow=c(1,3),
    # mengatur margin grafik
    mar=c(4,4,1.5,1.5),
    # mengatur margin sumbu
    mex=0.8,
    # arah tick sumbu koordinat
    tcl=0.3)
plot(x, y, type="l")
plot(x, y, type="o")

Fungsi lain yang dapat digunakan untuk membuat kurva suatu persamaan matematis adalah fungsi curve(). Berbeda dengan fungsi plot() yang perlu menspesifikasi objek pada sumbu x dan y, fungsi curve() hanya perlu menspesifikasi objek sumbu x saja. Format fungsi curve() adalah sebagai berikut:

curve(expr, from = NULL, to = NULL, add = FALSE)

Catatan

  • expr: persamaan matematika
  • from dan to: nilai awal dan akhir (maksimum atau minimum)
  • add: nilai logik yang menentukan apakah kurva perlu ditambahkan kedalam kurva sebelumnya.

Berikut adalah contoh visualisasi menggunakan fungsi curve():

par(mfrow=c(1,2),
    # mengatur margin grafik
    
    mar=c(4,4,1.5,1.5),
    
    # mengatur margin sumbu
    
    mex=0.8,
    
    # arah tick sumbu koordinat
    
    tcl=0.3)

# Grafik kiri

curve(expr=x^2*exp(x/2), 
      from=0, to=20)

# Grafik kanan

plot(x, y, pch=19, cex=0.7,
     xlab="Waktu (detik)",
     ylab="Sinyal Intensitas")
curve(expr=x^2*exp(-x/2), 
      from=0, to=10, add=TRUE)

Pada kedua grafik tersebut kita menggunakan 2 fungsi Visualisasi menggunakan fungsi curve (sebelah kiri) dan visualisasi menggunakan fungsi plot dan curve (sebelah kanan).

3.2 Visualisasi Lainnya

Visualisasi Lainnya yang sering Digunakan antara lain:

  • histogram
  • density plot
  • bar plot
  • box plot
3.2.1 Bar Plot

Barplot pada R dapat dibuat menggunakan fungsi barplot(). Untuk lebih memahaminya berikut disajikan contoh barplot menggunakan dataset VADeaths. Untuk memuatnya jalankan sintaks berikut:

VADeaths
##       Rural Male Rural Female Urban Male Urban Female
## 50-54       11.7          8.7       15.4          8.4
## 55-59       18.1         11.7       24.3         13.6
## 60-64       26.9         20.3       37.0         19.3
## 65-69       41.0         30.9       54.6         35.1
## 70-74       66.0         54.3       71.1         50.0
par(mfrow=c(1,2))
barplot(VADeaths[, "Rural Male"], main="a")
barplot(VADeaths[, "Rural Male"], main="b", horiz=TRUE)

kurva (a) merupakan kurva vertikal sedangkan kurva (b) kurva horizontal

Kita dapat mengubah warna pada masing-masing bar, baik outline bar maupun box pada bar. Selain itu kita juga dapat mengubah nama grup yang telah dihasilkan sebelumnya.

par(mfrow=c(1,1))
barplot(VADeaths[, "Rural Male"],
        # ubah warna ouline menjadi steelblue
        border="steelblue",
        # ubah wana box
        col= c("red", "yellow", "green", "steelblue", "pink"),
        # ubah nama grup dari A sampai E
        names.arg = LETTERS[1:5],
        # ubah orientasi menajadi horizontal
        horiz=TRUE)

Untuk bar plot dengan multiple group, tersedia dua pengaturan posisi yaitu stacked bar plot(menunjukkan proporsi penyusun pada masing-masing grup) dan grouped bar plot(melihat perbedaan individual pada masing-masing grup).

# staked
barplot(VADeaths,
         col = c("lightblue", "mistyrose", "lightcyan", 
                 "lavender", "cornsilk"),
        legend = rownames(VADeaths))

# grouped
barplot(VADeaths,
         col = c("lightblue", "mistyrose", "lightcyan", 
                 "lavender", "cornsilk"),
        legend = rownames(VADeaths), beside = TRUE)

3.2.2 Histogram dan Density Plot

Fungsi hist() dapat digunakan untuk membuat histogram pada R. Secara sederhana fungsi tersebut didefinisikan sebagai berikut:

hist(x, breaks=“Sturges”)

Catatan
  •   **x**: vektor numerik
  •   **breaks**: breakpoints antar sel histogram.

Pada dataset trees akan dibuat histogram variabel Height. Berikut syntak yang akan dijalankan :

hist(trees$Height)

Density plot pada R dapat dibuat menggunakan fungsi density(). Berbeda dengan fungsi hist(), fungsi ini tidak langsung menghasilkan grafik densitas. Fungsi density() hanya menghitung kernel densitas pada data. Densitas yang telah dihitung selanjutnya diplotkan menggunakan fungsi plot().

# menghitung kernel density
dens <- density(trees$Height)

# plot densitas dengan outline merah
plot(dens,col="red")

Kita juga dapat menambahkan grafik densitas pada histogram sehingga mempermudah pembacaan pada histogram. Untuk melakukannya kita perlu mengubah kernel histigram dari frekuensi menjadi density dengan menambahkan argumen freq=FALSE pada fungsi hist(). Selanjutnya tambahkan fungsi polygon() untuk memplotkan grafik densitas. Berikut adalah sintak dan output yang dihasilkan :

# menghitung kernel density
dens <- density(trees$Height)

# histogram
hist(trees$Height, freq=FALSE, col="steelblue")

# tambahkan density plot
polygon(dens, border="red")

3.2.3 Box Plot

Box plot pada R dapat dibuat menggunakan fungsi boxplot(). Berikut adalah sintaks untuk membuat boxplot variabel Sepal.Lenght pada dataset iris dan output yang dihasilkan :

boxplot(iris$Sepal.Length)

Boxplot juga dapat dibuat berdasarkan variabel factor. Hal ini berguna untuk melihat perbedaan ditribusi data pada masing-masing grup. Pada sintaks berikut dibuat boxplot berdasarkan variabel Species. Output yang dihasilkan :

boxplot(iris$Sepal.Length~iris$Species)

Kita juga dapat membuat boxplot pada multiple group. Data yang digunakan untuk contoh tersebut adalah dataset ToothGrowth. Berikut adalah sintaks untuk memuat dataset tersebut:

# ubah variable dose menjadi factor
ToothGrowth$dose <- as.factor(ToothGrowth$dose)

# print
head(ToothGrowth)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5

Contoh sintaks dan output boxplot multiple group

boxplot(len ~ supp*dose, data = ToothGrowth,
        col = c("white", "red"))

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.