Visualisasi Data Panel Menggunakan R dengan Plotly Packages

Mochtar Hidayat
2 min readApr 11, 2019

--

Pendahuluan

Data panel memiliki dua krakteristik data, yaitu time series dan cross section.

  • Data time series adalah data yang memiliki runtun waktu yang lebih dari satu tahun pada satu objek atau data yang dikumpulkan dari waktu ke waktu terhadap satu individu/objek
  • Data cross section adalah data yang memiliki objek yang banyak pada tahun yang sama atau data yang dikumpulkan dalam satu waktu terhadap banyak objek.

Studi Kasus

link download dataset

Didalam file excel tersebut terdapat 4 sheet, dimana saya ingin menggabungkan data di 4 sheet tersebut untuk dijadikan dataset baru yang berisi variabel Negara (sheet 1), Tahun, GDP tahun 1970–2016 (sheet 1), populasi tahun 1970–2016 (sheet 2), Life Expectation tahun 1970–2016 (sheet 3), dan Region (sheet 4). disini saya ingin membuat animasi grafik scatter plot yang bergerak berdasar tahun.

Langkah Kerja: Membuat dataset baru

untuk membuat variabel pertama yaitu Negara, lakukan langkah-langkah ini:

pertama mendefinisikan variabel negara (country_panel) dikarenakan saya ingin membuat data panel maka perlu perulangan dengan fungsi rep() sebayak tahun (47 kali).

library(openxlsx)
gapminder = read.xlsx(file.choose(), sheet=1, startRow=1, colNames = TRUE)
country.vec = gapminder[,1]
country_panel = c()
for(i in 1:170)
{
x=rep(country.vec[i], 47)
country_panel = append(country_panel, x)
}

kedua mendefinisikan variabel tahun (years_panel).

years_panel = rep(1970:2016, 170)

ketiga mendefinisikan variabel GDP (gdp_panel), pada variabel ini menggunakan fungsi tranpose t() karena ingin mengubah data time series yang berupa baris menjadi kolom.

gdp_panel = c()
for(i in 1:170)
{
x=gapminder[i,]
x=x[-c(1:3)]
x=t(x)
gdp_panel=append(gdp_panel, x)
}

keempat mendefinisikan variabel populasi (pop_panel) di sheet 2.

gapminder1 = read.xlsx(file.choose(), sheet=2, startRow=1, colNames = TRUE)pop_panel = c()
for(i in 1:170)
{
x=gapminder1[i,]
x=x[-c(1:3)]
x=t(x)
pop_panel=append(pop_panel, x)
}

kelima mendefinisikan variabel life expectation (life_panel) di sheet 3.

gapminder2 = read.xlsx(file.choose(), sheet=3, startRow=1, colNames = TRUE)life_panel = c()
for(i in 1:170)
{
x=gapminder2[i,]
x=x[-c(1:3)]
x=t(x)
life_panel=append(life_panel, x)
}

keempat mendefinisikan variabel Region yang berisi kolom continent (kolom ke 6) di sheet 4.

gapminder4 = read.xlsx(file.choose(), sheet=4, startRow=1, colNames = TRUE)

region.vec = gapminder4[,6]
region_panel = c()
for(i in 1:170)
{
x=rep(region.vec[i], 47)
region_panel = append(region_panel, x)
}

setelah semua variabel telah terdefinisikan, maka dibuat dataset baru dengan cara berikut.

gapminder_frame2 = data.frame(country_panel, years_panel, gdp_panel, pop_panel, life_panel, region_panel)

Langkah Kerja: Memvisualisasi Data Panel

untuk memvisualisasikan data ini, saya menggunakan packages ggplot2 dan plotly. saya mendefinisikan X dengan data GDP (menggunakan log agar plot data bisa lebih jelas telihat), Y dengan variabel life expectation. dimana akan dibedakan warnanya berdasar negara, ukuran plot dengan populasi, dan bentuk plot berdasar region.

library(plotly)
library(ggplot2)
gap2=ggplot(gapminder_frame2, aes(x=log(gdp_panel),y= life_panel, color = country_panel, shape= region_panel))+ geom_point(aes(size=pop_panel, frame=years_panel))ggplotly(gap2)

maka akan didapatkan hasil grafik sebagai berikut

klik play untuk menjalankan animasi grafik tersebut.

Terimakasih :)

--

--