Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Mata Kuliah : Kalkulus
Prodi : Teknik Informatika
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Visualisasi data dipakai untuk mempresentasikan data yang terstruktur ataupun tidak dengan grafik atau bagan untuk menampilkan info yang tersembunyi didalam data.
Aplikasi pembuat data visual tidak hanya mengubah data menjadi grafik, tapi juga melihat dunia dari sudut pandang data. Dengan kata lain, objek data visual adalah data, dan yang sebenarnya kita mau ialah menggunakan data sebagai suatu alat, dan memvisualisasi data tersebut untuk menjelajah dunia.
Dengan semakin meningkatnya volume data, tidak mungkin untuk menceritakannya tanpa visualisasi. Visualisasi data adalah sebuah seni tentang cara mengubah angka menjadi pengetahuan yang berguna.
Pemrograman R memungkinkan Anda mempelajari seni ini dengan menawarkan seperangkat fungsi dan library untuk membangun visualisasi dan menyajikan data. Sebelum mengimplementasikan visualisasi secara teknis, mari kita perhatikan dulu cara memilih jenis grafik (chart) yang benar.
Memilih Jenis Grafik yang Tepat
Terdapat empat jenis Penyajian dasar :
Comparison (Perbandingan)
Composition (Komposisi)
Distribution (Distribusi)
Relationship (Relasi/Hubungan)
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.
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.
=“h” : membuat plot garis vertikal dari titik ke garis y=0.
type=“h” : membuat plot garis vertikal dari titik ke garis y=0.
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.
Berikut adalah contoh sintaks dan hasil plot.
# 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,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)
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=10)
# 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)
Visualisasi menggunakan fungsi curve (sebelah kiri) dan visualisasi menggunakan fungsi plot dan curve (sebelah kanan)
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
Contoh bar plot untuk variabel Rural Male :
par(mfrow=c(1,2))
barplot(VADeaths[, "Rural Male"], main="a")
barplot(VADeaths[, "Rural Male"], main="b", horiz=TRUE)
a. bar plot vertikal; b. bar plot horizontal
par(mfrow=c(1,1))
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. Berikut sintaks untuk melakukannya dan output yang dihasilkan :
barplot(VADeaths[, "Rural Male"],
# ubah warna ouline menjadi steelblue
border="steelblue",
# ubah wana box
col= c("powderblue", "skyblue", "cornflowerblue", "royalblue", "darkblue"),
# ubah nama grup dari A sampai E
names.arg = LETTERS[1:5],
# ubah orientasi menajadi horizontal
horiz=TRUE)
ntuk 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))
\(Stacked\) \(bar\) \(plot\)
# grouped
barplot(VADeaths,
col = c("lightblue", "mistyrose", "lightcyan",
"lavender", "cornsilk"),
legend = rownames(VADeaths), beside = TRUE)
\(Grouped\) \(bar\) \(plot\)
Fungsi hist() dapat digunakan untuk membuat histogram pada R. Secara sederhana fungsi tersebut didefinisikan sebagai berikut:
hist(x, breaks="Sturges")
hist(trees$Height)
Catatan:
x: vektor numerik
x: vektor numerik
Pada dataset trees akan dibuat histogram variabel Height.Untuk melakukannya jalankan sintaks berikut:
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(). Berikut adalah sintaks dan output yang dihasilkan :
# menghitung kernel density
dens <- density(trees$Height)
# plot densitas dengan outline green
plot(dens,col="green")
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="green")
# tambahkan density plot
polygon(dens, border="darkblue")
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 mengubah warna outline dan box pada boxplot. Berikut adalah contoh sintaks yang digunakan untuk melakukannya dan output yang dihasilkan :
boxplot(iris$Sepal.Length~iris$Species,
# ubah warna outline menjadi darkblue
border = "darkblue",
# ubah warna box berdasarkan grup
col= c("#999999", "#E69F00", "#56B4E9"))
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("pink", "steelblue"))
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.