Universitas : UIN Maulana Malik Ibrahim Malang Jurusan : Teknik Informatika

Cara-cara dalam Kustomisasi Parameter Grafik Menggunakan RStudio

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)

Berikut adalah contoh sintaks untuk memberi label pada sejumlah data yang memiliki kriteria yang kita inginkan dan output yang dihasilkan pada Gambar 3.22:

# 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

Gambar 3.22: Menambahkan teks

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

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)

Gambar 3.23: Menambahkan teks (2)

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

mtext(text, side=3)

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

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

Menambahkan teks (3)

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

# 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

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

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

Gambar 3.27: Line type

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)

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

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

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

Gambar 3.30: Kustomisasi tick mark ## 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 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

## Loading required package: grid

Nama warna

Gambar 3.31: Nama warna

REFERENSI

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