Bersihkan dulu memori pada komputer Anda

rm(list = ls())

Analisis Mudik

Saya menggunakan library visNetwork untuk menganalisis perpindahan dari satu kota ke kota lain (kampung halaman). Selamat belajar..

Panggil file pertama adalah seluruh nama-nama kota asal dan yang dikunjungi

nodes <- read.csv("nama_kota.csv",header=TRUE,sep=";")
head(nodes,3)
##   id   label
## 1  1 Bandung
## 2  2  Ciamis
## 3  3 Cirebon

Panggil file kedua yang berisi edges: pergerakan dari kota satu ke kota lain

edges <- read.csv("arahmudik.csv",header=TRUE,sep=";")
head(edges,3)
##   from to jumlah
## 1    5  1   1301
## 2    1 11   1424
## 3    1  4   3760
knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.5.3
## -- Attaching packages ------------------------ tidyverse 1.2.1 --
## v ggplot2 3.1.1       v purrr   0.3.2  
## v tibble  2.1.1       v dplyr   0.8.0.1
## v tidyr   0.8.2       v stringr 1.4.0  
## v readr   1.3.1       v forcats 0.3.0
## Warning: package 'ggplot2' was built under R version 3.5.3
## Warning: package 'tibble' was built under R version 3.5.3
## Warning: package 'purrr' was built under R version 3.5.3
## Warning: package 'dplyr' was built under R version 3.5.3
## Warning: package 'stringr' was built under R version 3.5.3
## -- Conflicts --------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
nodes_d3 <- mutate(nodes, id = id - 1)
edges_d3 <- mutate(edges, from = from - 1, to = to - 1)

Aktifkan library networkD3

library(networkD3)

Tampilkan Sankey Diagram

sankeyNetwork(
  Links = edges_d3, Nodes = nodes_d3, 
  Source = "from", Target = "to", 
  NodeID = "label", Value = "jumlah", 
  fontSize = 16, unit = "Letter(s)")

Dari diagram diatas tampak bahwa pergerakan terbanyak dari Jakarta, kota yang sering disinggahi adalah Bandung dan Solo.

Aktifkan library(visNetwork)

library(visNetwork)
## Warning: package 'visNetwork' was built under R version 3.5.3

Tampilkan Grafik Network standar

visNetwork(nodes, edges) %>%
  visLayout(randomSeed = 12)

Menampilkan besaran edges (garis) sesuai jumlah/frekuensi

edges <- mutate(edges, width = 1 + jumlah/1000)

Membuat network graph sesuai besarnya variable edges

visNetwork(nodes, edges) %>% 
  visIgraphLayout(layout = "layout_with_fr") %>% 
  visEdges(arrows = "middle") %>%
  visLayout(randomSeed = 1234)  

Layout_with_sugiyama

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_with_sugiyama")

Gunakan fungsi full space

visNetwork(nodes, edges) %>%
  visIgraphLayout(type = "full")

Layout in circle dan membuat NodesIdSelection

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_in_circle") %>%
  visOptions(highlightNearest = list(enabled = T, hover = T),
             nodesIdSelection = T)

Membuat grafik dengan kurva yang smooth

visNetwork(nodes, edges) %>%
  visIgraphLayout(physics = TRUE, smooth = TRUE)

Bila ingin membuat tampilan yang fix

visNetwork(nodes, edges) %>%
  visIgraphLayout(randomSeed = 123)

Membuat Network yang berwarna

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_with_sugiyama") %>%
  visNodes(color = list(background = "yellow", border = "blue",highlight = "red"))

Membuat Shadow

visNetwork(nodes, edges) %>%
  visNodes(shadow = TRUE)
visNetwork(nodes, edges) %>% 
  visNodes(shadow = list(enabled = TRUE, size = 50))