Lembaga :Universitas Islam Negeri Maulana Malik Ibrahim Malang

Prodi:Teknik Informatika

Kustomisasi Parameter Grafik

Pada bagian ini penulis akan menjelaskan cara untuk kustomisasi parameter grafik seperti:

  1. menambahkan judul, legend, teks, axis, dan garis.

  2. mengubah skala axis, simbol plot, jenis garis, dan warna.

3.3.1 Menambahkan Judul

Pada grafik di R, kita dapat menambahkan judul dengan dua cara, yaitu: pada plot melalui parameter dan melalui fungsi plot(). Untuk menambahkan judul pada plot secara langsung, kita dapat menggunakan argumen tambahan sebagai berikut: a. main: teks untuk judul.

  1. xlab: teks untuk keterangan axis X.

  2. ylab: teks untuk keterangan axis y.

  3. sub: teks untuk sub-judul.

Berikut contoh sintaks penerapan masing-masing argumen tersebut beserta dengan output yang dihasilkan pada Gambar 3.15:

# menambahkan judul 

barplot(c(2,5), main="Main title",
        
        xlab="X axis title",
        
        ylab="Y axis title", 
        
        sub="Sub-title")

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:

  1. col.main: warna untuk judul.

  2. col.lab: warna untuk keterangan axis.

  3. col.sub: warna untuk sub-judul

Untuk kustomisasi font judul, kita dapat menambahkan argumen berikut:

  1. font.main: font style untuk judul.

  2. font.lab: font style untuk keterangan axis.

  3. font.sub: font style untuk sub-judul.

Penting!!! 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:

  1. cex.main: ukuran teks judul.

  2. cex.lab: ukuran teks keterangan axis.

  3. cex.sub: ukuran teks sub-judul.

Berikut sintaks penerapan seluruh argumen tersebut beserta output yang dihasilkan pada Gambar 3.16:

# 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)

kita juga 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 Gambar 3.17:

# 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)

3.3.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)

Catatan:

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 Gambar 3.18:

# 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

Kita dapat menambahkan judul, merubah font, dan merubah warna backgroud pada legend. Argumen yang ditambahkan pada legend adalah sebagai berikut:

  1. title: Judul legend

  2. 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.

  1. bg: warna background legend box.

Berikut adalah penerapan sintaks dan output yang dihasilkan pada Gambar 3.19:

# 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)

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 Gambar 3.20:

# 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)

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 Gambar 3.21:

# 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

3.3.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)

Catatan:

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 Gambar 3.22 berikut :

# tandai observasi yang memiliki nilai

# mpg < 15 dan wt > 5 

d <- mtcars[mtcars$wt >= 5 & mtcars$mpg <= 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

Sedangkan sintaks berikut adalah contoh bagaimana menambahkan persamaan kedalam bidang grafik dan output yang dihasilkan pada Gambar 3.23 berikut :

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)

Fungsi mtext() berguna untuk menambahkan teks pada frame sekitar bidang grafik. Format yang digunakan adalah sebagai berikut: mtext(text, side=3)

Catatan:

text: teks yang akan ditulis.

side: integer yang menunjukkan lokasi teks yang akan ditulis. Nilai yang dapat dimasukkan antara lain:

1: bah

2: kiri

3: atas

4: kanan.

Berikut adalah contoh penerapan dan output yang dihasilkan pada Gambar 3.24 berikut :

plot(1:10, 1:10,
     
     main="mtext(...) examples\n~~~~~") 
mtext("Magic function", side=3)

Menambahkan teks(3)

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 Gambar 3.25 berikut :

# 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

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 Gambar 3.26:

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

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 Gambar 3.27:

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

3.3.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)

Catatan:

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 Gambar 3.28:

# 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)

Modifikasi 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 Gambar 3.29:

# 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

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 Gambar 3.30:

# 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

3.3.7 Menangatur 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. Pada sintaks berikut disajikan visualisasi nama-nama warna bawaan yang ada pada R. Output yang dihasilkan disajikan pada Gambar 3.31:

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

Referensi

https://bookdown.org/moh_rosidi2610/Metode_Numerik/dataviz.html#customise