Visualisasi Diagram Chord (Chord Diagram) dengan R

Diagram Chord

Kita masih berkutat membahas visualisasi data teman-teman. Kita pelan-pelan saja membahas dan mendalami R. Tenang saja, nantinya kita akan menuju bahasan-bahasan yang lebih lanjut dan mendalam lagi, terutama pemodelan statistik. Mengingat memang fungsi atau manfaat utama penggunaan R ini adalah di Data Mining yang termasuk di dalamnya adalah pemodelan statistik menggunakan data.

Baik, kali ini kita kita akan membahas visualisasi yang bisa dibilang merupakan tetangga dekat, atau kata lain bisa kita sebut sahabat karibnya Diagram Sankey yang sebelumnya kita bahas (bagi yang ketinggalan bisa cek di sini saja). Kalau Diagram Sankey kita gunakan untuk set data yang saling berhubungan dengan set data lainnya, demikian halnya dengan Diagram Chord. Visualisasi jenis ini juga bisa kita gunakan untuk menampilkan set data yang saling berkaitan.

Bedanya, kalau Diagam Sankey itu berbentuk alur seperti pipa-pipa air yang berpecah dan menyatu satu dengan yang lain, sedangkan Diagram Chord (Chord Diagram) bentuknya seperti lubang gitar (bentuknya bulat atau lingkaran) yang di dalamnya terdapat hubungan atau relasi antar set data. Selain itu, sejauh yang saya amati, Diagram Chord ini hubungan antar set data (node) lengkap dan tidak ada node yang tidak memiliki pasangan atau berkorespondensi satu-satu. Data-data yang cocok untuk divisualisasikan dengan Diagram Chord misalnya, data Tabel Input-Output, data Ekspor-Impor, data Distribusi Perdagangan Antar Wilayah, dan data arus Komuter penduduk, dan masih banyak pula data-data sejenis yang relevan divisualisasikan dengan Diagram Chord ini.

Lalu, bagaimana penerapannya di R? Kita akan mempraktikkan bagaimana cara sederhana untuk membuat visualisasi Diagram Chord ini. Namun, sebelumnya kita harus menyiapkan datanya terlebih dulu. Data yang kali akan kita gunakan adalah data Tabel Input-Output (I-O) Provinsi Jawa Timur 2016. Adapun sumber datanya bisa teman-teman peroleh dengan mengunjungi laman situs jatim.bps.go.id. Data I-O yang telah saya siapkan bisa diunduh pada link berikut. Setelah datanya diunduh, mari kita praktikkan visualisasi Diagram Chord dengan beberapa code berikut:

Code:

#Import Data I-O Jawa Timur 2016
library(readxl)
iojatim <- read_excel("E:/R/Chord Diagram Tabel I-O Indonesia/iojatim.xlsx")

#Melihat data Input - Output Jawa Timur 2016
iojatim

Hasil:

# A tibble: 17 x 18
    ...1       `1`    `2`    `3`    `4`    `5`    `6`    `7`    `8`    `9`   `10`   `11`   `12`   `13`   `14`
 
 1     1 13015371. 4.30e3 8.25e7 1.45e3 2.38e3 2.12e5 3.72e2 9.37e3 1.68e7 2.54e0 2.07e3 0      0      4.46e5
 2     2     5071. 5.09e5 8.78e6 1.04e7 7.55e2 3.01e7 0      0      1.10e2 0      0      0      0      1.08e2
 3     3 16232079. 3.20e6 2.15e8 1.04e6 1.77e5 8.57e7 1.19e7 1.17e7 1.93e7 2.82e6 1.44e6 1.15e6 3.22e6 2.24e6
 4     4   855900. 2.09e6 1.45e7 3.27e7 1.56e5 2.21e5 7.09e6 1.35e6 1.28e6 8.22e6 2.10e5 9.95e5 1.79e6 8.97e5
 5     5    22961. 1.01e4 1.43e5 1.49e4 1.40e4 1.13e4 3.31e4 2.04e4 3.50e4 1.79e4 1.25e3 4.60e1 7.50e2 1.41e4
 6     6   341149. 8.57e4 1.19e6 1.72e3 4.20e4 1.58e7 6.38e4 2.75e5 3.91e4 1.92e4 5.37e5 2.52e6 1.29e5 1.81e6
 7     7  5284537. 3.23e6 7.68e7 2.67e6 7.35e4 2.14e7 3.66e6 1.21e7 8.53e6 1.12e6 6.01e5 1.01e6 2.26e6 2.41e6
 8     8  3173845. 2.25e6 2.34e7 8.34e5 4.46e4 4.03e6 9.26e6 6.94e6 1.76e6 1.34e6 4.72e5 1.29e6 2.09e6 3.84e6
 9     9   408631. 9.95e5 5.57e6 1.34e5 1.30e4 4.96e4 6.85e5 4.16e5 1.17e6 6.36e4 8.31e4 1.11e5 1.82e6 2.44e6
10    10    90835. 4.24e5 1.49e6 3.51e5 8.83e3 4.07e5 1.16e7 2.20e6 6.16e5 1.82e7 2.18e6 1.36e6 3.86e6 8.38e5
11    11  1266998. 5.27e5 6.38e6 1.71e6 5.85e4 8.06e5 1.71e7 1.53e6 1.77e5 6.86e5 3.92e6 2.50e6 7.82e5 2.44e5
12    12        0  9.12e5 3.44e6 0      2.31e4 9.80e5 9.62e6 3.08e6 5.88e5 1.35e6 2.40e5 9.95e5 1.04e6 2.34e5
13    13   527537. 2.01e6 5.47e6 5.86e5 4.25e4 7.66e5 6.78e6 7.62e6 7.96e5 4.28e6 3.37e6 1.06e6 3.43e6 1.92e6
14    14    11546. 4.84e3 7.29e5 6.02e4 6.29e2 4.63e0 1.75e3 8.70e4 3.07e3 1.87e3 1.30e5 1.15e4 6.76e5 1.64e5
15    15     4062. 1.08e4 2.70e5 7.25e3 1.23e3 1.45e4 3.15e5 7.86e4 9.58e3 1.33e4 2.01e5 2.58e3 1.35e4 9.34e4
16    16   146783. 1.22e5 8.23e5 5.78e3 4.81e2 1.61e5 6.64e4 1.52e5 1.95e4 9.03e3 3.52e4 3.80e5 7.11e5 7.23e3
17    17   620804. 2.08e5 5.40e6 1.39e5 7.57e4 3.98e5 1.74e6 1.09e6 8.20e5 1.09e5 5.52e4 1.48e5 3.52e5 1.38e5
# ... with 3 more variables

Code:

#Mengecek apakah tipe data I-O numerik
is.numeric(iojatim)

Hasil:

[1] FALSE

Code:

#Jika False, ambil subset matriks n dari matriks io
n <- as.matrix(iojatim[2:18]) #ambil subset 2 sampai 18 tanpa baris 1

#Cek apakah sudah numerik?
is.numeric(n)

Hasil:

[1] TRUE

Code:

#Kalau sudah TRUE bisa digunakan Chord Diagram
grupnama <- c("Tanhutkan",
              "Tamgal",
              "Inpeng",
              "Pengadaan_LGEs",
              "Pengadaan AOSDaur",
              "Konstruksi",
              "Perdagangan_BERep",
              "Transgud",
              "Penyediaan_Akomamin",
              "Infokom",
              "Jasa_Keuas",
              "RE",
              "Jasperu",
              "Adpemtansos",
              "Jasdik",
              "Jakesos",
              "JL"
)

#membuat Fungsi warna grup pada Chord Diagram
color <- colorRampPalette(c("red", "yellow", "green"))
warna <- color(17) #17 karena kita akan gradasi warnanya menjadi 17 warna dengan warna dasar merah, kuning, hijau

#Menginstall dan aktivasi package chorddiag

install.packages("devtools")
library(devtools)
devtools::install_github("mattflor/chorddiag") #karena package chorddiag itu kita pakai teknik repo dari github mattflor jadi menggunakan install_github() dari devtools
library(chorddiag)

#Membuat Chord Diagram
chorddiag(n, groupPadding = 2, groupColors = warna, groupNames = grupnama, ticklabelFontsize = 0.01,
          groupnameFontsize = 10)

Hasil:

Diagram Chord dengan R

Baiklah, demikian sedikit ulasan mengenai bagaimana kita membuat visualisasi data Diagram Chord untuk data Input-Output Jawa Timur 2016 dengan R. Jangan lupa share dan kementar bila ada pertanyaan atau eror di kolom komentar. Jangan lupa juga untuk terus mengikuti unggahan-unggahan menarik berikutnya di blog ini. Selamat memperaktikkan!

Add Comments


EmoticonEmoticon