Data visualization using ggplot2 and plotly in R
Assalamualaikum Warahmatullahi Wabarakatuh
Pada kesempatan ini saya akan membuat suatu animasi bergerak menggunakan packages ggplot2
dan plotly
. ggplot2 adalah salah satu paket tidyverse paling populer digunakan untuk visualisasi data, sintaksinya yang konsisten dan efisiensi dapat digunakan untuk membuat visualisasi data yang berkualitas tinggi. Jika ingin lebih menghidupkan data dengan tampilan plot lebih menarik dapat menggunakan packages plotly
sehingga grafik ggplot2
berubah menjadi grafik plotly dengan animasi plot bergerak.
Data yang akan digunkan dapat didownload disini
Data dengan nama gapminder.xlsx memiliki 4 sheet, kita akan menggabungkan gdp, population, years, life Expectancy, dan region menjadi satu tampilan dataset. Maka kita akan menggabungkan 4 sheet tersebut menjadi bentuk data panel.
Let’s create an animated visualization of the data panel
install package openxlsx
untuk meng-input data excel.
library(openxlsx)
memasukkan data gdp (sheet 1) ke R
#input data
gapminder1 <- read.xlsx("D:\\semester 4\\Data Visualisasi\\uts\\gapminder.xlsx", sheet = 1, startRow = 1, colNames = TRUE)
View(gapminder1)
mengambil data baris kesatu yaitu variabel country, defenisikan sebagai country.vec
#mengambil varibel Country name
country.vec <- gapminder1 [,1]
head(country.vec)
buat perulangan dari data ke 1–170. Kemudian lakukan replikasi negara sebanyak 47 kali sesuai lama tahun yang digunaan yaitu dari tahun 1970–2016
#membuat pengulangan variabel panel (replikasi)
country_panel <- c()
for (i in 1:170) {
x = rep(country.vec[i], 47)
country_panel <- append(country_panel, x)
}
View(country_panel)
buat vektor replikasi dari tahun 1970–2016 sebanyak 170 negara
years_panel <- rep(1970:2016, 170)
head(years_panel)
mengambil data variabel gdp untuk 170 negara, lalu transpose menggunakan syntax x=t(x)
karena bentuk awalnya berupa kolom akan dijadikan berbentuk baris
gdp_panel <- c()
for (i in 1:170) {
x = gapminder1[i,]
x = x[-c(1:3)]
x = t(x)
gdp_panel <- append(gdp_panel, x)
}
head(gdp_panel)
Proses ini juga akan dilakukan pada variabel pop, life, dan region dengan cara yang sama sesuai sheet masing-masing
memasukkan data populasi (sheet 2) ke R
gapminder2 <- read.xlsx("D:\\semester 4\\Data Visualisasi\\uts\\gapminder.xlsx", sheet = 2, startRow = 1, colNames = TRUE)
View(gapminder1)
buat vektor pop_panel diambil dari data kolom ketiga yaitu variabel Continent, lakukan replikasi sebanyak 170 kemudian transpose
pop_panel <- c()
for (i in 1:170) {
x = gapminder2[i,]
x = x[-c(1:3)]
x = t(x)
pop_panel <- append(pop_panel, x)
}
head(pop_panel)
memasukkan data life (sheet 3) ke R
gapminder3 <- read.xlsx("D:\\semester 4\\Data Visualisasi\\uts\\gapminder.xlsx", sheet = 3, startRow = 1, colNames = TRUE)
View(gapminder3)
buat vektor life_panel diambil dari data kolom ketiga yaitu variabel Continent, lakukan replikasi sebanyak 170 kemudian transpose
life_panel <- c()
for (i in 1:170) {
x = gapminder3[i,]
x = x[-c(1:3)]
x = t(x)
life_panel <- append(life_panel, x)
}
head(life_panel)
memasukkan data region(sheet 4) ke R
gapminder4 <- read.xlsx("D:\\semester 4\\Data Visualisasi\\uts\\gapminder.xlsx", sheet = 4, startRow = 1, colNames = TRUE)
View(gapminder4)
buat vektor region.vec diambil dari data kolom enam yaitu variabel Continent, lakukan replikasi sebanyak 170 kemudian transpose
region.vec <- gapminder4 [,6]
head(region.vec)
Kemudian lakukan replikasi negara sebanyak 47 seperti country.vec
region_panel <- c()
for (i in 1:170) {
x = rep(region.vec[i], 47)
region_panel <- append(region_panel, x)
}
View(region_panel)
Kita sudah mempunyai 6 vektor, yaitu: country_panel, years_panel, gdp_panel, pop_panel, life_panel, dan region_panel. Maka kita akan menggabungkan 6 vektor tersebut menjadi 1 file dengan cara membuat data frame
buat data frame untuk menggabungkan 6 vektor tersebut
#membuat data frame
gapminder_frame <- data.frame(region_panel,country_panel, years_panel, gdp_panel, pop_panel, life_panel)
View(gapminder_frame)
kemudian kita kan membuat visualisasi data berbentuk animasi plot bergerak
install packages ggplot2
dan plotly
library(plotly)
library(ggplot2)
ganti nama variabel agar lebih jelas dan mudah dimengerti
Gross_Domestic_Product= log(gdp_panel)
Life_Expectancy= life_panel
Country=country_panel
Region=region_panel
years=years_panel
buat plot menggunakan ggplot dari data frame yang telah dibuat, gunakan “Gross_Domestic_Product” sebagai axix x, “life_Expectancy” sebagai axis y, pemberian warna berdasarkan “Country”, ukurannya (size) berdasarkan “pop_panel”, dan bentuk atau shape berdasarkan “Region”. Lalu frame-nya berdasarkan tahun sehingga akan bergerak dari tahun ke tahun
gap <- ggplot(gapminder_frame, aes(x=Gross_Domestic_Product, y=Life_Expectancy, color = Country)) + geom_point(aes(shape = Region,size = pop_panel,frame = years))
gap
ggplotly(gap)
Hasil animasi plot bergeraknya akan terlihat seperti gambar berikut
Untuk tampilan lengkapnya dapat dilihat di https://youtu.be/O0JWcWdlh4Q