Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : 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.

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:

  1. main: teks untuk judul.

  2. xlab: teks untuk keterangan axis X.

  3. ylab: teks untuk keterangan axis y.

  4. sub: teks untuk sub-judul.

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

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.

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

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

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

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

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

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

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

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

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: bawah

• 2: kiri

• 3: atas

• 4: kanan

Berikut adalah contoh penerapan dan output yang dihasilkan pada Gambar

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

Menambahkan Garis Pada Plot

Fungsiabline()dapatdigunakanuntukmenamabahkangarispadaplot. Garis yangditambahkandapatberupagarisvertikal,horizontal,maupungarisregresi. Format yang digunakan adalah sebagi berikut:

abline(v=y)

Berikut adalah contoh sintak sebagaimana menambahkan garis padas ebuah plot dan output yang dihasilkan disajikan pada Gambar

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

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

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

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

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

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.

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

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.

Untukpenggunaanwarnahexadesimakitaperlumengetikkan“#”yangdiukuti 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

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)