Daftar Isi
4.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")
Note:
- 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 memahaminya berikut penulis akan sajikan contoh untuk masing-masing grafik tersebut. Berikut adalah contoh sintaks dan hasil plot yang disajikan pada Figure 1:
# membuat vektor data
x <- c(1:10); y <- x^2
# membagi jendela grafik menajdi 4 baris dan 2 kolom
par(mfrow=c(3,3))
# loop
type <- c("p","l","b","o","h","s","n")
for (i in type){
plot(x,y, type= i,
main= paste("type=", i))
}
![Plot berbagai jenis setting type](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/plot-1.png)
Figure 1: Plot berbagai jenis setting type
Pada contoh selanjutnya akan dilakukan plot terhadap dataset trees
. Untuk memuatnya jalankan sintaks berikut:
library(tibble)
## Warning: package 'tibble' was built under R version 3.5.3
# memuat dataset
trees <- as_tibble(trees)
# print
trees
## # A tibble: 31 x 3
## Girth Height Volume
## <dbl> <dbl> <dbl>
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
## 7 11 66 15.6
## 8 11 75 18.2
## 9 11.1 80 22.6
## 10 11.2 75 19.9
## # ... with 21 more rows
Pada dataset tersebut kita ingin membuat scatterplot untuk melihat korelasi antara variabel Height
dan Volume
. Untuk melakukannya jalankan sintaks berikut:
plot(trees$Height, trees$Volume)
# atau
with(trees, plot(Height, Volume))
![Scatterplot Height vs Volume](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/scatter-1.png)
Figure 2: Scatterplot Height vs Volume
Kita juga dapat menggunakan formula untuk membuat scatterplot pada Figure 2. Berikut adalah contoh sintaks yang digunakan:
x <- trees$Height
y <- trees$Volume
plot(y~x)
Fungsi plot()
juga dapat digunakan untuk membentuk matriks scatterplot. Untuk membuatnya kita hanya perlu memasukkan seluruh dataset kedalam fungsi plot()
. Berikut adalah sintaks dan output yang dihasilkan berupa Figure 3:
plot(trees)
![Matriks scatterplot dataset trees](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/scatter2-1.png)
Figure 3: Matriks scatterplot dataset trees
Selain itu jika kita memasukkan objek lm()
yang merupakan fungsi untuk melakukan operasi regresi linier pada fungsi plot()
, output yang dihasilkan berupa plot diagnostik yang berguna untuk menguji asumsi model regresi linier. Berikut adalah contoh sintaks dan output yang dihasilkan pada Figure 4:
# membagi jendela grafik menjadi 2 baris dan 2 kolom
par(mfrow=c(2,2))
# plot
plot(lm(Volume~Height, data=trees))
![Plot diagnostik regresi linier](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/diag-1.png)
Figure 4: Plot diagnostik regresi linier
Selain objek-objek tersebut, fungsi plot()
akan banyak digunakan dalam analisis statistika kita pada chapter lainnya.
4.2 Matriks Scatterplot
Pada bagian sebelumnya kita telah belajar bagaimana membuat matriks scatterplot mengggunakan fungsi plot()
. Pada bagian ini kita akan belajar cara membuat matriks scatterplot menggunakan fungsi pairs()
. Secara umum format fungsi dituliskan sebagai berikut:
pairs(data, lower.panel=NULL)
Note:
- data: data frame
- lower.panel: menampilkan atau tidak menampilkan panel bawah
Untuk lebih memahami penggunaan fungsi tersebut, berikut akan disajikan contoh penggunaannya pada dataset iris
. Sebelum melakukannya jalankan sintaks berikut untuk memuat dataset:
# memuat dataset irir
iris <- as_tibble(iris)
# print
iris
## # A tibble: 150 x 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3 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 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 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
## # ... with 140 more rows
Untuk membuat matriks scatterplot kita hanya perlu memasukkan objek iris
kedalam fungsi pairs()
. Berikut adalah sintaks yang digunakan dan output yang dihasilkan pada Figure 5:
pairs(iris)
![Matriks scatterplot iris](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/matscat-1.png)
Figure 5: Matriks scatterplot iris
Kita dapat melakukan drop terhadap panel bawah grafik tersebut. Untuk melakukannya kita perlu memasukkan argumen lower.panel=NULL
. Output yang dihasilkan akan tampak seperti pada Figure 6.
pairs(iris, lower.panel=NULL)
![Matriks scatterplot iris tanpa panel bawah](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/matscat2-1.png)
Figure 6: Matriks scatterplot iris tanpa panel bawah
Kita dapat merubah warna titik berdasarkan factor Species
. Langkah pertama yang perlu dilakukan adalah melakukan drop variabel Species
pada dataset dan memasukkan objek baru tanpa variabel tersebut kedalam fungsi pairs()
. Warna berdasarkan grup diberikan dengan menambahkan argumen col=
pada fungsi pairs()
. Berikut adalah contoh penerapannya dan output yang dihasilkan pada Figure 7:
# drop variabel Species
# simpan dataset baru pada objek iris2
iris2 <- iris[ ,1:4]
# print
iris2
## # A tibble: 150 x 4
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## <dbl> <dbl> <dbl> <dbl>
## 1 5.1 3.5 1.4 0.2
## 2 4.9 3 1.4 0.2
## 3 4.7 3.2 1.3 0.2
## 4 4.6 3.1 1.5 0.2
## 5 5 3.6 1.4 0.2
## 6 5.4 3.9 1.7 0.4
## 7 4.6 3.4 1.4 0.3
## 8 5 3.4 1.5 0.2
## 9 4.4 2.9 1.4 0.2
## 10 4.9 3.1 1.5 0.1
## # ... with 140 more rows
# spesifikasi vaktor warna titik berdasarkan spesies
my_col <- c("#00AFBB", "#E7B800", "#FC4E07")
# plot
pairs(iris2, lower.panel=NULL,
# spesifikasi warna
col= my_col[iris$Species])
![Matriks scatterplot iris tanpa panel bawah](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/matscat3-1.png)
Figure 7: Matriks scatterplot iris tanpa panel bawah
Kita juga dapat mengganti panel bawah menjadi nilai korelasi antar variabel. Untuk melakukannya kita perlu mendefinisikan sebuah fungsi untuk panel bawah dan panel atas (jika ingin warna titik berdasarkan factor). Setelah fungsi panel bawah dan atas didefinisikan, langkah selanjutnya adalah melakukan memasukkan nilainya kedalam fungsi pairs()
. Berikut adalah sintaks yang digunakan serta output yang dihasilkan pada Figure 8:
# membuat fungsi untuk menghitung
# nilai korelasi yang ditempatkan pada panel bawah
panel.cor <- function(x, y){
# definisi parameter grafik
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
# menghitung koefisien korelas
r <- round(cor(x, y), digits=2)
# menambahkan text berdasarkan koefisien korelasi
txt <- paste0("R = ", r)
# mengatur besar text sesuai besarnya nilai korelasi
cex.cor <- 0.8/strwidth(txt)
text(0.5, 0.5, txt, cex = cex.cor * abs(r))
}
# kustomisasi panel atas agar
# warna titik berdasarkan factor
my_col <- c("#00AFBB", "#E7B800", "#FC4E07")
upper.panel<-function(x, y){
points(x,y, col = my_col[iris$Species])
}
pairs(iris2,
lower.panel= panel.cor,
upper.panel= upper.panel)
![Matriks scatterplot iris dengan koefisien korelasi](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/matscat4-1.png)
Figure 8: Matriks scatterplot iris dengan koefisien korelasi
Jika kita tidak ingin nilai korelasi ditampilkan di panel bawah, kita dapat merubahnya sehingga dapat tampil pada panel atas bersamaan dengan scatterplot. Untuk melakukannya kita perlu mendefinisikan fungsi pada panel atas dan memasukkannya pada argumen upper.panel=
. Berikut adalah sintaks yang digunakan beserta output yang dihasilkan pada Figure 9:
# kustomisasi panel atas
upper.panel<-function(x, y){
points(x,y, col=c("#00AFBB", "#E7B800", "#FC4E07")[iris$Species])
r <- round(cor(x, y), digits=2)
txt <- paste0("R = ", r)
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
text(0.5, 0.9, txt)
}
# plot
pairs(iris2, lower.panel = NULL,
upper.panel = upper.panel)
![Matriks scatterplot iris dengan koefisien korelasi di panel atas](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/matscat5-1.png)
Figure 9: Matriks scatterplot iris dengan koefisien korelasi di panel atas
4.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 pada Figure 10:
boxplot(iris$Sepal.Length)
![Boxplot variabel Sepal.Length](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/boxplot-1.png)
Figure 10: Boxplot variabel 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 disajikan pada Figure 11:
boxplot(iris$Sepal.Length~iris$Species)
![Boxplot berdasarkan variabel species](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/boxplot2-1.png)
Figure 11: Boxplot berdasarkan variabel species
Kita juga dapat mengubah warna outline dan box pada boxplot. Berikut adalah contoh sintaks yang digunakan untuk melakukannya dan output yang dihasilkan disajikan pada Figure 12:
boxplot(iris$Sepal.Length~iris$Species,
# ubah warna outline menjadi steelblue
border = "steelblue",
# ubah warna box berdasarkan grup
col= c("#999999", "#E69F00", "#56B4E9"))
![Boxplot dengan warna berdasarkan spesies](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/boxplot3-1.png)
Figure 12: Boxplot dengan warna berdasarkan spesies
Kita juga dapat membuat boxplot pada multiple group. Data yang digunakan untuk contoh tersebut adalah dataset ToothGrowth
. Berikut adalah sintaks untuk memuat dataset tersebut:
# memuat dataset sebagai tibble
ToothGrowth <- as_tibble(ToothGrowth)
# print
ToothGrowth
## # A tibble: 60 x 3
## len supp dose
## <dbl> <fct> <dbl>
## 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 VC 0.5
## 7 11.2 VC 0.5
## 8 11.2 VC 0.5
## 9 5.2 VC 0.5
## 10 7 VC 0.5
## # ... with 50 more rows
# ubah variable dose menjadi factor
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
# print
ToothGrowth
## # A tibble: 60 x 3
## len supp dose
## <dbl> <fct> <fct>
## 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 VC 0.5
## 7 11.2 VC 0.5
## 8 11.2 VC 0.5
## 9 5.2 VC 0.5
## 10 7 VC 0.5
## # ... with 50 more rows
Contoh sintaks dan output boxplot multiple group disajikan pada Figure 13:
boxplot(len ~ supp*dose, data = ToothGrowth,
col = c("white", "steelblue"))
![Boxplot multiple group](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/boxplot4-1.png)
Figure 13: Boxplot multiple group
4.4 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
Contoh bar plot untuk variabel Rural Male
disajikan pada Figure 14:
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](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/barplot-1.png)
Figure 14: 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 pada Figure 15:
barplot(VADeaths[, "Rural Male"],
# ubah warna ouline menjadi steelblue
border="steelblue",
# ubah wana box
col= c("grey", "yellow", "steelblue", "green", "orange"),
# ubah nama grup dari A sampai E
names.arg = LETTERS[1:5],
# ubah orientasi menajadi horizontal
horiz=TRUE)
![Kustomisasi bar plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/barplot2-1.png)
Figure 15: Kustomisasi bar plot
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). Pada Figure 16 dan Figure 17, disajikan kedua jenis bar plot tersebut.
# staked
barplot(VADeaths,
col = c("lightblue", "mistyrose", "lightcyan",
"lavender", "cornsilk"),
legend = rownames(VADeaths))
![Stacked bar plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/barplot3-1.png)
Figure 16: Stacked bar plot
# grouped
barplot(VADeaths,
col = c("lightblue", "mistyrose", "lightcyan",
"lavender", "cornsilk"),
legend = rownames(VADeaths), beside = TRUE)
![Grouped bar plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/barplot4-1.png)
Figure 17: Grouped bar plot
4.5 Line Plot
Line plot pada R
dapat dibentuk menggunakan fungsi plot()
. Selain itu fungsi lines()
dapat pula digunakan untuk menambahkan line plot pada grafik. Berikut adalah sintaks untuk membuat line plot dan outputnya pada Figure 18:
# Membuat vektor data
x <- c(1:20)
y <- 2*x
z <- x^2
# Membuat line plot x vs y
plot(y~x, type="b",
lty=1,
col="blue")
# Menambahkan line plot x vs z
lines(z~x, type="o",
lty=2,
col="red")
# Menambahkan legend
legend("topleft", legend=c("Line 1", "Line 2"),
col=c("red", "blue"), lty = 1:2, cex=0.8)
![Line plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/line-1.png)
Figure 18: Line plot
4.6 Pie Chart
Pie chart digunakan untuk membuat visualisasi proporsi pada sebuah data. Pie chart pada R
dibuat menggunakan fungsi pie()
. Berikut adalah sintaks untuk membuat pie chart dan output yang dihasilkan pada Figure 19:
par(mar = c(0, 1, 0, 1))
pie(
c(280, 60, 20),
c('Sky', 'Sunny side of pyramid', 'Shady side of pyramid'),
col = c('#0292D8', '#F7EA39', '#C4B632'),
init.angle = -50, border = NA
)
![Pie chart](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/pie-1.png)
Figure 19: Pie chart
4.7 Histogram dan Density Plot
Fungsi hist()
dapat digunakan untuk membuat histogram pada R
. Secara sederhana fungsi tersebut didefinisikan sebagai berikut:
hist(x, breaks="Sturges")
Note:
- x: vektor numerik
- breaks: breakpoints antar sel histogram.
Pada dataset trees
akan dibuat histogram variabel Height
. Untuk melakukannya jalankan sintaks berikut:
hist(trees$Height)
Output yang dihasilkan disajikan pada Figure 20:
![Histogram](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/hist-1.png)
Figure 20: Histogram
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 pada Figure 21:
# menghitung kernel density
dens <- density(trees$Height)
# plot densitas dengan outline merah
plot(dens,col="red")
![Density plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/dens-1.png)
Figure 21: Density plot
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 pada Figure 22:
# menghitung kernel density
dens <- density(trees$Height)
# histogram
hist(trees$Height, freq=FALSE, col="steelblue")
# tambahkan density plot
polygon(dens, border="red")
![Density plot dan histogram](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/denshist-1.png)
Figure 22: Density plot dan histogram
4.8 QQ Plot
QQ plot digunakan untuk mengecek distribusi suatu data apakah berdistribusi normal atau tidak. Pada R
QQ plot dibuat menggunakan 2 fungsi yaitu: qqnorm()
dan qqline()
. Fungsi qqnorm()
digunakan untuk memproduksi normal QQ plot suatu variabel. Sedangkan fungsi qqline()
digunakan untuk membuat garis referensi distiribusi normal. Suatu distribusi dikatan normal jika titik observasi yang dihasilkan mengikuti garis referensi tersebut.
Berikut adalah cara membuat QQ plot menggunakan variabel Volume
pada dataset trees
. Output yang dihasilkan disajikan pada Figure 23.
qqnorm(trees$Volume)
qqline(trees$Volume, col="red")
![QQ plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/qq-1.png)
Figure 23: QQ plot
4.9 Dot Chart
Fungsi dotchart()
pada R
digunakan untuk membuat dot chart. Format yang digunakan adalah sebagai berikut:
dotchart(x, labels = NULL, groups = NULL,
gcolor = par("fg"), color = par("fg"))
Note:
- x: vektor atau matriks numerik.
- labels: vektor label untuk tiap titik.
- groups: grouping variabel yang mengindikasikan bagaimana x dikelompokkan.
- gcolor: warna yang digunakan pada label grup dan nilai observasi.
- color: warna yang digunakan untuk titik dan label.
Pada contoh berikut disajikan cara membuat dot chart pada dataset mtcars
untuk melihat mobil yang paling hemat bahan bakar berdasarkan variabel mpg
dan jumlah silinder (cyl
). Berikut sintaks yang digunakan dan output yang dihasilkan pada Figure 24:
# mengurutkan dataset mtcars berdasarkan variabel mpg
mtcars <- mtcars[order(mtcars$mpg), ]
# mengubah variabel cyl menjadi factor
grps <- as.factor(mtcars$cyl)
# membuat vektor warna berdasarkan jumlah grup
my_cols <- c("#999999", "#E69F00", "#56B4E9")
# plot
dotchart(mtcars$mpg, labels = row.names(mtcars),
groups = grps, gcolor = my_cols,
color = my_cols[grps],
cex = 0.6, pch = 19, xlab = "mpg")
![Dot chart](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/dot-1.png)
Figure 24: Dot chart
4.10 Kustomisasi Parameter Grafik
Pada bagian ini penulis akan menjelaskan cara untuk kustomisasi parameter grafik seperti:
- menambahkan judul, legend, teks, axis, dan garis.
- mengubah skala axis, simbol plot, jenis garis, dan warna.
4.10.1 Menambahkan Judul
Pada grafik di R
, kita dapat menambahkan judul dengan dua cara, yaitu: pada plot melalui parameter dan melalui fungsi plot(). Kedua cara tersebut tidak berbeda satu sama lain pada parameter input.
Untuk menambahkan judul pada plot secara langsung, kita dapat menggunakan argumen tambahan sebagai berikut:
- main: teks untuk judul.
- xlab: teks untuk keterangan axis X.
- ylab: teks untuk keterangan axis y.
- sub: teks untuk sub-judul.
Berikut contoh sintaks penerapan masing-masing argumen tersebut beserta dengan output yang dihasilkan pada Figure 25:
# menambahkan judul
barplot(c(2,5), main="Main title",
xlab="X axis title",
ylab="Y axis title",
sub="Sub-title")
![Menambahkan Judul](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/title-1.png)
Figure 25: Menambahkan Judul
kita juga dapat melakukan kustomisasi pada warna, font style, dan ukuran font judul. Untuk melakukan kustomisasi pada warna pada judul, kita dapat menambahkan argumen sebagai berikut:
- col.main: warna untuk judul.
- col.lab: warna untuk keterangan axis.
- col.sub: warna untuk sub-judul
Untuk kustomisasi font judul, kita dapat menambahkan argumen berikut:
- font.main: font style untuk judul.
- font.lab: font style untuk keterangan axis.
- font.sub: font style untuk sub-judul.
Note:
Nilai yang dapat dimasukkan antara lain:
- 1: untuk teks normal.
- 2: untuk teks cetak tebal.
- 3: untuk teks cetak miring.
- 4: untuk teks cetak tebal dan miring.
- 5: untuk font simbol.
Sedangkan untuk ukuran font, kita dapat menambahkan variabel berikut:
- cex.main: ukuran teks judul.
- cex.lab: ukuran teks keterangan axis.
- cex.sub: ukuran teks sub-judul.
Berikut sintaks penerapan seluruh argumen tersebut beserta output yang dihasilkan pada Figure 26:
# menambahkan judul
barplot(c(2,5),
# menambahkan judul
main="Main title",
xlab="X axis title",
ylab="Y axis title",
sub="Sub-title",
# kustomisasi warna font
col.main="red",
col.lab="blue",
col.sub="black",
# kustomisasi font style
font.main=4,
font.lab=4,
font.sub=4,
# kustomisasi ukuran font
cex.main=2,
cex.lab=1.7,
cex.sub=1.2)
![Menambahkan Judul (2)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/title2-1.png)
Figure 26: Menambahkan Judul (2)
Kita telah belajar bagaimana menambahkan judul langsung pada fungsi plot. Selain cara tersebut, telah penulis jelaskan bahwa kita dapat menambahkan judul melalui fungsi title()
. argumen yang dimasukkan pada dasarnya tidak berbeda dengan ketika kita menambahkan judul secara langsung pada plot. Berikut adalah contoh sintaks dan output yang dihasilkan pada Figure 27:
# menambahkan judul
barplot(c(2,5,8))
# menambahkan judul
title(main="Main title",
xlab="X axis title",
ylab="Y axis title",
sub="Sub-title",
# kustomisasi warna font
col.main="red",
col.lab="blue",
col.sub="black",
# kustomisasi font style
font.main=4,
font.lab=4,
font.sub=4,
# kustomisasi ukuran font
cex.main=2,
cex.lab=1.7,
cex.sub=1.2)
![Menambahkan Judul (3)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/title3-1.png)
Figure 27: Menambahkan Judul (3)
4.10.2 Menambahkan Legend
Fungsi legend()
pada R
dapat digunakan untuk menambahkan legend pada grafik. Format sederhananya adalah sebagai berikut:
legend(x, y=NULL, legend, fill, col, bg)
Note:
- x dan y: koordinat yang digunakan untuk posisi legend.
- legend: teks pada legend
- fill: warna yang digunakan untuk mengisi box disamping teks legend.
- col: warna garis dan titik disamping teks legend.
- bg: warna latar belakang legend box.
Berikut adalah contoh sintaks dan ouput penerapan argumen disajikan pada Figure 28:
# membuat vektor numerik
x <- c(1:10)
y <- x^2
z <- x*2
# membuat line plot
plot(x,y, type="o", col="red", lty=1)
# menambahkan line plot
lines(x,z, type="o", col="blue", lty=2)
# menambahkan legend
legend(1, 95, legend=c("Line 1", "Line 2"),
col=c("red", "blue"), lty=1:2, cex=0.8)
![Menambahkan legend](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/legend-1.png)
Figure 28: Menambahkan legend
Kita dapat menambahkan judul, merubah font, dan merubah warna backgroud pada legend. Argumen yang ditambahkan pada legend adalah sebagai berikut:
- title: Judul legend
- text.font: integer yang menunjukkan font style pada teks legend. Nilai yang dapat dimasukkan adalah sebagai berikut:
- 1: normal
- 2: cetak tebal
- 3: cetak miring
- 4: cetak tebal dan miring.
- bg: warna background legend box.
Berikut adalah penerapan sintaks dan output yang dihasilkan pada Figure 29:
# membuat line plot
plot(x,y, type="o", col="red", lty=1)
# menambahkan line plot
lines(x,z, type="o", col="blue", lty=2)
# menambahkan legend
legend(1, 95, legend=c("Line 1", "Line 2"),
col=c("red", "blue"), lty=1:2, cex=0.8,
title="Line types", text.font=4, bg='lightblue')
![Menambahkan legend (2)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/legend2-1.png)
Figure 29: Menambahkan legend (2)
Kita dapat melakukan kustomisasi pada border dari legend melalui argumen box.lty=
(jenis garis), box.lwd=
(ukuran garis), dan box.col=
(warna box). Berikut adalah penerapan argumen tersebut beserta output yang dihasilkan pada Figure 30:
# membuat line plot
plot(x,y, type="o", col="red", lty=1)
# menambahkan line plot
lines(x,z, type="o", col="blue", lty=2)
# menambahkan legend
legend(1, 95, legend=c("Line 1", "Line 2"),
col=c("red", "blue"), lty=1:2, cex=0.8,
title="Line types", text.font=4, bg='white',
box.lty=2, box.lwd=2, box.col="steelblue")
![Menambahkan legend (3)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/legend3-1.png)
Figure 30: Menambahkan legend (3)
Selain menggunakan koordinat, kita juga dapat melakukan kustomisasi posisi legend menggunakan keyword seperti: bottomright“,”bottom“,”bottomleft“,”left“,”topleft“,”top“,”topright“,”right" and “center”. Sejumlah kustomisasi legend berdasarkan keyword disajikan pada Figure 31:
# plot
plot(x,y, type = "n")
# posisi kiri atas, inset =0.05
legend("topleft",
legend = "(x,y)",
title = "topleft, inset = .05",
inset = 0.05)
# posisi atas
legend("top",
legend = "(x,y)",
title = "top")
# posisi kanan atas inset = .02
legend("topright",
legend = "(x,y)",
title = "topright, inset = .02",
inset = 0.02)
# posisi kiri
legend("left",
legend = "(x,y)",
title = "left")
# posisi tengah
legend("center",
legend = "(x,y)",
title = "center")
# posisi kanan
legend("right",
legend = "(x,y)",
title = "right")
# posisi kiri bawah
legend("bottomleft",
legend = "(x,y)",
title = "bottomleft")
# posisi bawah
legend("bottom",
legend = "(x,y)",
title = "bottom")
# posisi kanan bawah
legend("bottomright",
legend = "(x,y)",
title = "bottomright")
![Kustomisasi posisi legend](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/legend4-1.png)
Figure 31: Kustomisasi posisi legend
4.10.3 Menambahkan Teks Pada Grafik
Teks pada grafik dapat kita tambahkan baik sebagai keterangan yang menunjukkan label suatu observasi, keterangan tambahan disekitar bingkai grafik, maupun sebuah persamaan yang ada pada bidang grafik. Untuk menambahkannya kita dapat menggunakan dua buah fungsi yaitu: text()
dan mtext()
.
FUngsi text()
berguna untuk menambahkan teks di dalam bidang grafik seperti label titik observasi dan persamaan di dalam bidang grafik. Format yang digunakan adalah sebagai berikut:
text(x, y, labels)
Note:
- x dan y: vektor numerik yang menunjukkan koordinat posisi teks.
- labels: vektor karakter yang menunjukkan teks yang hendak ditulis.
Berikut adalah contoh sintaks untuk memberi label pada sejumlah data yang memiliki kriteria yang kita inginkan dan output yang dihasilkan pada Figure 32:
# tandai observasi yang memiliki nilai
# mpg < 15 dan wt > 5
d <- mtcars[mtcars$wt >= 5 & mtcars <= 15, ]
# plot
plot(mtcars$wt, mtcars$mpg, main="Milage vs. Car Weight",
xlab="Weight", ylab="Miles/(US) gallon")
# menambahkan text
text(d[,'wt'], d[,'mpg'], row.names(d),
cex=0.65, pos=3,col="red")
![Menambahkan teks](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/text-1.png)
Figure 32: Menambahkan teks
Sedangkan sintaks berikut adalah contoh bagaimana menambahkan persamaan kedalam bidang grafik dan output yang dihasilkan pada Figure 33:
plot(1:10, 1:10,
main="text(...) examples\n~~~~~~~~~~~")
text(4, 9, expression(hat(beta) == (X^t * X)^{-1} * X^t * y))
text(7, 4, expression(bar(x) == sum(frac(x[i], n), i==1, n)))
![Menambahkan teks (2)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/text2-1.png)
Figure 33: Menambahkan teks (2)
Fungsi mtext()
berguna untuk menambahkan teks pada frame sekitar bidang grafik. Format yang digunakan adalah sebagai berikut:
mtext(text, side=3)
Note:
- text: teks yang akan ditulis.
- side: integer yang menunjukkan lokasi teks yang akan ditulis. Nilai yang dapat dimasukkan antara lain:
- 1: bawah
- 2: kiri
- 3: atas
- 4: kanan.
Berikut adalah contoh penerapan dan output yang dihasilkan pada Figure 34:
plot(1:10, 1:10,
main="mtext(...) examples\n~~~~~~~~~~~")
mtext("Magic function", side=3)
![Menambahkan teks (3)](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/text3-1.png)
Figure 34: Menambahkan teks (3)
4.10.4 Menambahkan Garis Pada Plot
Fungsi abline()
dapat digunakan untuk menamabahkan garis pada plot. Garis yang ditambahkan dapat berupa garis vertikal, horizontal, maupun garis regresi. Format yang digunakan adalah sebagi berikut:
abline(v=y)
Berikut adalah contoh sintaks bagaimana menambahkan garis pada sebuah plot dan output yang dihasilkan disajikan pada Figure 35:
# membuat plot
plot(mtcars$wt, mtcars$mpg, main="Milage vs. Car Weight",
xlab="Weight", ylab="Miles/(US) gallon")
# menambahkan garis vertikal di titik rata-rata weight
abline(v=mean(mtcars$wt), col="red", lwd=3, lty=2)
# menambahkan garis horizontal di titik rata-rata mpg
abline(h=mean(mtcars$mpg), col="blue", lwd=3, lty=3)
# menambahkan garis regresi
abline(lm(mpg~wt, data=mtcars), lwd=4, lty=4)
![Menambahkan garis](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/abline-1.png)
Figure 35: Menambahkan garis
4.10.5 Merubah Simbol plot dan Jenis Garis
Simbol plot (jenis titik) dapat diubah dengan menambahkan argumen pch=
pada plot. Nilai yang dimasukkan pada argumen tersebut adalah integer dengan kemungkinan nilai sebagai berikut:
- pch = 0,square
- pch = 1,circle (default)
- pch = 2,triangle point up
- pch = 3,plus
- pch = 4,cross
- pch = 5,diamond
- pch = 6,triangle point down
- pch = 7,square cross
- pch = 8,star
- pch = 9,diamond plus
- pch = 10,circle plus
- pch = 11,triangles up and down
- pch = 12,square plus
- pch = 13,circle cross
- pch = 14,square and triangle down
- pch = 15, filled square
- pch = 16, filled circle
- pch = 17, filled triangle point-up
- pch = 18, filled diamond
- pch = 19, solid circle
- pch = 20,bullet (smaller circle)
- pch = 21, filled circle blue
- pch = 22, filled square blue
- pch = 23, filled diamond blue
- pch = 24, filled triangle point-up blue
- pch = 25, filled triangle point down blue
Untuk lebih memahami bentuk simbol tersebut, penulis akan menyajikan sintaks yang menampilkan seluruh simbol tersebut pada satu grafik. Output yang dihasilkan disajikan pada Figure 36:
generateRPointShapes<-function(){
# menentukan parameter plot
oldPar<-par()
par(font=2, mar=c(0.5,0,0,0))
# produksi titik axis
y=rev(c(rep(1,6),rep(2,5), rep(3,5), rep(4,5), rep(5,5)))
x=c(rep(1:5,5),6)
# plot seluruh titik dan label
plot(x, y, pch = 0:25, cex=1.5, ylim=c(1,5.5), xlim=c(1,6.5),
axes=FALSE, xlab="", ylab="", bg="blue")
text(x, y, labels=0:25, pos=3)
par(mar=oldPar$mar,font=oldPar$font )
}
# Print
generateRPointShapes()
![Symbol plot](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/symbol-1.png)
Figure 36: Symbol plot
Pada R
kita juga dapat mengatur jenis garis yang akan ditampilkan pada plot dengan menambahkan argumen lty=
(line type) pada fungsi plot. Nilai yang dapat dimasukkan adalah nilai integer. Keterangan masing-masing nilai tersebut adalah sebagai berikut:
- lty = 0, blank
- lty = 1, solid (default)
- lty = 2, dashed
- lty = 3, dotted
- lty = 4, dotdash
- lty = 5, longdash
- lty = 6, twodash
Untuk lebih memahaminya, pada sintaks berikut disajikan plot seluruh jenis garis tersebut beserta output yang dihasilkannya pada Figure 37:
generateRLineTypes<-function(){
oldPar<-par()
par(font=2, mar=c(0,0,0,0))
plot(1, pch="", ylim=c(0,6), xlim=c(0,0.7), axes = FALSE ,xlab="", ylab="")
for(i in 0:6) lines(c(0.3,0.7), c(i,i), lty=i, lwd=3)
text(rep(0.1,6), 0:6,
labels=c("0.'blank'", "1.'solid'", "2.'dashed'", "3.'dotted'",
"4.'dotdash'", "5.'longdash'", "6.'twodash'"))
par(mar=oldPar$mar,font=oldPar$font )
}
generateRLineTypes()
![Line type](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/lty-1.png)
Figure 37: Line type
4.10.6 Mengatur Axis Plot
Kita dapat melakukan pengaturan lebih jauh terhadap axis, seperti: menambahkan axis tambahan pada atas dan bawah frame, mengubah rentang nilai axis, serta kustomisasi tick mark pada nilai axis. Hal ini diperlukan karena fungsi grafik dasar R
tidak dapat mengatur axis secara otomatis saat plot baru ditambahkan pada plot pertama dan rentang nilai plot baru lebih besar dibanding plot pertama, sehingga sebagian nilai plot baru tidak ditampilkan pada hasil akhir.
Untuk menambahkan axis pada R
kita dapat menambahkan fungsi axis()
setelah plot dilakukan. Format yang digunakan adalah sebagai berikut:
axis(side, at=NULL, labels=TRUE)
Note:
- side: nilai integer yang mengidikasikan posisi axix yang hendak ditambahkan. Nilai yang dapat dimasukkan adalah sebagai berikut:
- 1: bawah
- 2: kiri
- 3: atas
- 4: kanan.
- at: titik dimana tick-mark hendak digambarkan. Nilai yang dapat dimasukkan sama dengan side.
- labels: Teks label tick-mark. Dapat juga secara logis menentukan apakah anotasi harus dibuat pada tick mark.
Berikut contoh sintaks penerapan fungsi tersebut dan output yang dihasilkan pada Figure 38:
# membuat vektor numerik
x <- c(1:4)
y <- x^2
# plot
plot(x, y, pch=18, col="red", type="b",
frame=FALSE, xaxt="n") # Remove x axis
# menambahkan axis
# bawah
axis(1, 1:4, LETTERS[1:4], col.axis="blue")
# atas
axis(3, col = "darkgreen", lty = 2, lwd = 0.5)
# kanan
axis(4, col = "violet", col.axis = "dark violet", lwd = 2)
![Menambahkan axis](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/axis-1.png)
Figure 38: Menambahkan axis
Kita dapat mengubah rentang nilai pada axis menggunakan fungsi xlim()
dan ylim()
yang menyatakan vektor nilai masimum dan minimum rentang. Selain itu kita dapat juga melakukan tranformasi baik pada sumbu x dan sumbu y. Berikut adalah argumen yang dapat ditambahkan pada fungsi grafik:
- xlim: limit nilai sumbu x dengan format:
xlim(min, max)
. - ylim: limit nilai sumbu x dengan format:
ylim(min, max)
.
Untuk transformasi skala log, kita dapat menambahkan argumen berikut:
- log=“x”: transformasi log sumbu x.
- log=“y”: transformasi log sumbu y.
- log=“xy”: transformasi log sumbu x dan y.
Berikut adalah contoh sintaks penerapan argumen tersebut beserta output yang dihasilkan pada Figure 39:
# membagi jendela grafik menjadi 1 baris dan 3 kolom
par(mfrow=c(1,3))
# membuat vektor numerik
x<-c(1:10); y<-x*x
# simple plot
plot(x, y)
# plot dengan pengaturan rentang skala
plot(x, y, xlim=c(1,15), ylim=c(1,150))
# plot dengan transformasi skala log
plot(x, y, log="y")
![Mengubah rentang dan skala axis](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/axis2-1.png)
Figure 39: Mengubah rentang dan skala axis
Kita dapat melakukan kustomisasi pada tick mark. Kustomisasi yang dapat dilakukan adalah merubah warna, font style, ukuran font, orientasi, serta menyembunyikan tick mark.
Argumen yang ditambahkan adalah sebagai berikut:
- col.axis: warna tick mark.
- font.axis: integer yang menunjukkan font style. Sama dengan pengaturan judul.
- cex.axis: pengaturan ukuran tick mark.
las: mengatur orientasi tick mark. Nilai yang dapat dimasukkan adalah sebagai berikut:
- 0: paralel terhadap posisi axis (default)
- 1: selalu horizontal
- 2: selalu perpendikular dengan posisi axis
3: selalu vertikal
xaxt dan yaxt: karakter untuk menunjukkan apakah axis akan ditampilkan atau tidak. nilai dapat berupa “n”(sembunyika) dan “s”(tampilkan).
Berikut adalah contoh penerapan argumen tersebut beserta output pada Figure 40:
# membuat vektor numerik
x<-c(1:10); y<-x*x
# plot
plot(x,y,
# warna
col.axis="red",
# font style
font.axis=2,
# ukuran
cex=1.5,
# orientasi
las=3,
# sembunyikan sumbu x
xaxt="n")
![Kustomisasi tick mark](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/axis3-1.png)
Figure 40: Kustomisasi tick mark
4.10.7 Mengatur Warna
Pada fungsi dasar R
, warna dapat diatur dengan mengetikkan nama warna maupun kode hexadesimal. Selain itu kita juga dapat menamambahkan warna lain melalui library lain yang tidak dijelaskan pada chapter ini.
Untuk penggunaan warna hexadesima kita perlu mengetikkan “#” yang diukuti oleh 6 kode warna. Untuk memperlajari kode-kode dan warna yang dihasilkan, silahkan pembaca mengunjungi situs http://www.visibone.com/.
Pada sintaks berikut disajikan visualisasi nama-nama warna bawaan yang ada pada R
. Output yang dihasilkan disajikan pada Figure 41:
showCols <- function(cl=colors(), bg = "grey",
cex = 0.75, rot = 30) {
m <- ceiling(sqrt(n <-length(cl)))
length(cl) <- m*m; cm <- matrix(cl, m)
require("grid")
grid.newpage(); vp <- viewport(w = .92, h = .92)
grid.rect(gp=gpar(fill=bg))
grid.text(cm, x = col(cm)/m, y = rev(row(cm))/m, rot = rot,
vp=vp, gp=gpar(cex = cex, col = cm))
}
# print 60 nama warna pertama
showCols(bg="gray20", cl=colors()[1:60], rot=30, cex=0.9)
## Loading required package: grid
![Nama warna](/tutorial/04_visualisasi-data-menggunakan-fungsi-dasar-r_files/figure-html/color-1.png)
Figure 41: Nama warna
Referensi
- Maindonald, J.H. 2008. Using R for Data Analysis and Graphics Introduction, Code and Commentary. Centre for Mathematics and Its Applications Australian National University.
- Scherber, C. 2007. An introduction to statistical data analysis using R. R_Manual Goettingen.
- Venables, W.N. Smith D.M. and R Core Team. 2018. An Introduction to R. R Manuals.
- STHDA. R Base Graphs. http://www.sthda.com/english/wiki/r-base-graphs