Archive for the ‘R Scripts’ Category

Memulai R dan Analisis Sederhana (3)

Topik : Membuat plot, menambah grid dan mengatur batas axis

Beberapa “coretan” tentang studi kasus analisis data statistik dengan visualisasi grafik telah dibahas beberapa kali dalam blog ini. Namun kali ini penulis kembali akan memberikan catatan kecil yang berkenaan dengan membuat plot sederhana, khususnya berkaitan dengan penambahan grid dan mengatur batas axis dengan mudah.

Fungsi utama yang digunakan untuk membuat plot adalah fungsi plot . Fungsi ini merupakan fungsi umum yang digunakan untuk melakukan plot obyek-obyek dalam R.

Berikut ini contoh script untuk melakukan manipulasi plot sederhana :

> x <- c(1:12)
> y <- rnorm(12,120,50)
> plot(x,y)

Hasilnya adalah sebagai berikut :

Nach, untuk mempercantik hasil plot kita dapat menambah grid, mengatur batas axis dan pengaturan warna dengan tambahan script sebagai berikut :

> par(bg=”pink”)
> plot(x,y,axes=FALSE,xlim=c(1,12),xlab=”",ylab=”",col.axis=”red”)
> usr <- par(“usr”)
> rect(usr[1],usr[3],usr[2],usr[4],col=”black”)
> grid()
> abline(h=c(50,200),lty=3,col=”orange”)
> lines(x,y,col=”yellow”)
> points(x,y,col=”orange”,pch=19,cex=1)
> axis(1,at=1:12,labels=month.abb,cex.axis=0.7)
> axis(2,cex.axis=0.7)
> title(“Normal Random Data”,sub=”(Time Series Plot)”,
+ cex.main=1.5, font.main=2,col.main=”brown”,
+ cex.sub=0.7,font.sub=4,col.sub=”black”)
> title(xlab=”month”,ylab=”Data”,cex.lab=0.7)
> text(x,y+10,formatC(y),col=”white”,cex=0.6)

Ditulis sekedar untuk mengingatkan penulis ketika akan mempercantik plot :)

Bubble Plot Mapping : Menggambarkan Distribusi Data di R dengan Bubble Symbol

Menggambarkan distribusi data, khususnya untuk menggambarkan keragaman data antar Kabupaten / Kota dapat kita lakukan dengan menggunakan simbol Bubble Plot. Di mana besar kecilnya data dapat dibedakan melalui radius masing-masing nilai tiap Kabupaten / Kota.

Untuk kasus berikut ini, kita akan mencoba menggambarkan distribusi Angka Buta Huruf Propinsi Jawa Timur pada Tahun 1998. Script yang digunakan adalah sebagai berikut:


Hasilnya adalah sebagai berikut :

Sumber Data : BPS, Generated by : Enciety Data Mining

Salam,

Unung Istopo H

Plot Time Series : Message History Parameter YAHOO! Groups

Kita seringkali ingin mengetahui bagaimana time series messages dalam komunitas milis yang kita ikuti. Namun terkadang, model message History Parameter, seperti dalam Gambar 1, sulit bagi kita untuk melakukan analisis. Dalam script sederhana kali ini, kita akan mencoba menggambarkan plot time series untuk data yang berbetuk matriks. Sebenarnya kita bisa menggunakan fungsi-fungsi R Time Series, namun untuk langkah-langkah ini kita akan menggunakan script dasar R, sekalian untuk mengenalkan bagaimana menggunakan loop, abline dan fungsi dasar lainnya.

Gambar 1. Data Milis Parameter YAHOO! groups Message History


snapshot time : 17 Juni 2005 10:53 WIB

Langkah-Langkah membuat plot time series untuk message history milis www.yahoogroups.com dengan kasus milis Parameter yang kita ambil pada tanggal 17 Juni 2005 10:09:43 WIB, adalah sebagai berikut :

  1. Mengambil data message history dari halaman Home Milis Parameter.

    Ada beberapa metode untuk mengambil data dari halaman ini, yaitu dengan menggunakan metode RegEx, untuk mengambil data dalam pola HTML tertentu atau cara yang mudah dan simple yaitu dengan copy clipboard untuk data message history.

    Untuk script kali ini kita memilih copy clipboard, dengan cara seperti artikel sebelumnya.

    read.delim(pipe("xclip -o")) -> data.parameter

  2. Kemudian kita melakukan manipulasi data matriks diatas untuk membuat data series, berikut ini script yang dapat digunakan :

    data.new <- c(1:60)
    for (i in 5:1) {
    for (j in 1:12){
    data.parameter[i,j] -> data.new[j+(12*(5-i))]
    }
    }

  3. Selanjutnya, kita dapat mulai melakukan plot, menambahkan abline untuk mempercantik tampilan

    now <- date()
    plot(data.new,type="b",axes=F,xlab=paste("Generated by enciety Data Mining ",now),ylab="Messages Total",main="Message History Parameter YAHOO! Groups",col="darkblue")
    axis(2)
    abline(v=c(1,13,25,37,49),lty=3,col="red")
    abline(h=seq(25,150,25),lty=3,col="grey")
    axis(2,at=seq(25,150,25),seq(25,150,25))
    axis(1,at=c(1,13,25,37,49),c("Jan 2001","Jan 2002","Jan 2003","Jan 2004","Jan 2005"))
    #text(c(1:60),data.new+3,data.new)
    box()

  4. Setelah kita jalankan script tersebut di R maka kita akan dapatkan hasil seperti Gambar 2:

Gambar 2. Plot Time Series Milis Parameter YAHOO! groups Message History

snapshot time : 17 Juni 2005 11:19 WIB

Salam,

Unung Istiopo H