Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Fakultas : Sains dan Teknologi
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.
Fungsi plot() merupakan fungsi umum yang digunakan untuk membuat plot pada R. Format dasarnya adalah sebagai berikut:
plot(x, y, type=“p”)
- 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)
- 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).
Visualisasi Lainnya yang sering Digunakan antara lain:
- histogram
- density plot
- bar plot
- box 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)
Fungsi hist() dapat digunakan untuk membuat histogram pada R. Secara sederhana fungsi tersebut didefinisikan sebagai berikut:
hist(x, breaks=“Sturges”)
**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")
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"))
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
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.