Diagram Sankey dengan R |
Kemarin visualisasi yang kita bahas masih mendasar, kali ini kita akan mencoba belajar bersama bagaimana membuat visualisasi data lanjutan menggunakan Diagram Sankey (Sankey Diagram). Sebagian dari kita mungkin belum pernah mendengar jenis visualisasi ini, bisa jadi pula, teman-teman baru tahu dari blog ini. Namun, visualisasi ini sebenarnya telah lama dan banyak digunakan, apalagi kalau teman-teman mencoba menengok keseruan komunitas Tableau publik, di sana, diagram Sankey begitu banyak macamnya, bahkan customenya aneh dan unik kalau saya katakan. Tapi yang jelas penuh dengan makna atau insight.
Diagram Sankey sendiri didefinisikan sebagai diagram aliran hubungan atau keterkaitan antara satu set data dengan set data lainnya dengan karakteristik node dan link. Node adalah titik atau amatan data yang terhubung, sedangkan link merupakan garis, alur, atau jembatan penghubung antar node tadi.
Diagram Sankey hingga kini terus dikembangkan karena bermanfaat khususnya untuk visualisasi data-data yang memiliki keterkaitan antar waktu atau antar amatan. Salah satu contoh data yang akan kita jadikan bahan praktik visualisasi diagram Sankey kali ini adalah data Ekspor-Impor Indonesia yang telah saya siapkan di sini, bisa teman-teman unduh dulu datanya. Dalam data tersebut, tujuan atau goal dari praktik kita adalah bagaimana membuat diagram alur negara lain ekspor ke Indonesia dan bagaimana ekspor Indonesia ke negara lain. Tujuan seperti inilah yang relevan bila kita buat dalam visualisasi Sankey. Adapun langkah-langkahnya, kita dapat menggunakan beberapa code berikut:
Code:
#Install dan aktivasi package
install.packages("networkD3")
install.packages("dplyr")
library(networkD3)
library(dplyr)
#Import data Eskpor-Impor Indonesia
library(readxl)
exim <- read_excel("E:/R/Sankey Diagram Perdagangan Antar Wilayah Indonesia/Exim.xlsx")
#Mengubah nama data frame ke links
links <- exim
#Melihat Sekilas data
links
Hasil:
source target value IDsource IDtarget
<chr> <chr> <dbl> <dbl> <dbl>
1 Indonesia Jepang 915785595 0 22
2 Indonesia Amerika Serikat 681889742 0 23
3 Indonesia Tiongkok 4303187335 0 24
4 Indonesia Malaysia 1049271858 0 25
5 Indonesia Taiwan 238659337 0 26
6 Indonesia Swiss 370344 0 27
7 Indonesia Thailand 1526119955 0 28
8 Indonesia Singapura 257107099 0 29
9 Indonesia India 1458247760 0 30
10 Indonesia Vietnam 405453047 0 31
# ... with 42 more rows
Code:
#Membuat data nodes secara unik dan berkaitan dengan source dan target
nodes <- data.frame(
name=c(as.character(links$source),
as.character(links$target)) %>% unique()
)
#Membuat link dengan fungsi match()
links$IDsource <- match(links$source, nodes$name)-1
links$IDtarget <- match(links$target, nodes$name)-1
# Make the Network
sankey <- sankeyNetwork(Links = links, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=T, fontSize = 8, nodeWidth = 30)
sankey
Hasil:
Diagram Sankey Ekspor - Impor Indonesia |
Visualisasi Diagram Sankey dengan hover aktif |
Baik, demikian sekilas cara memvisualisasikan data dengan Diagram Sankey, jangan lupa share dan komentar bila ada pertanyaan di kolom komentar. Jangan lupa untuk terus menyimak blog ini untuk sharing dan berbagi ilmu selanjutnya. Selamat mempraktikan!