library(remotes)
library(circlepackeR)
library(data.tree)
library(treemap)
library(readxl)
library(jsonlite)
library(tidyverse)
## -- Attaching packages ------------------------------------------------------------------------------------------------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.1.0     v purrr   0.2.5
## v tibble  2.0.1     v dplyr   0.7.8
## v tidyr   0.8.2     v stringr 1.3.1
## v readr   1.3.1     v forcats 0.3.0
## -- Conflicts ---------------------------------------------------------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter()  masks stats::filter()
## x purrr::flatten() masks jsonlite::flatten()
## x dplyr::lag()     masks stats::lag()
library(treemap)
library(sunburstR)
library(networkD3)
library(htmlwidgets)
## 
## Attaching package: 'htmlwidgets'
## The following object is masked from 'package:networkD3':
## 
##     JS
useRdf <- read_xlsx("trainbook_80perc.xlsx", sheet = "Table") %>%
  na.omit()
  
useRdf$pathString <- paste("Data Science Professional",
                           useRdf$group_title,
                           useRdf$area_type,
                           useRdf$area_subtype,
                           useRdf$area_subtype2,
                           sep="/")

useRtree <- as.Node(useRdf, 
                    pathDelimiter = "/")

#JS to change node colors, needs tweaking
colorVector <- c("black", "red", "blue", "green", "orange", 
    rep("red", 5), rep("blue", 5), rep("green", 4), rep("orange", 4),
    rep("red", 11), rep("blue", 14), rep("green", 14), rep("orange", 11))

jsarray <- paste0('["', paste(colorVector, collapse = '", "'), '"]')
nodeStrokeJS <- JS(paste0('function(d, i) { return ', jsarray, '[i]; }'))

#plot with networkD3
useRtreeList <- ToListExplicit(useRtree, unname = TRUE)
radialNetwork(useRtreeList, nodeStroke = nodeStrokeJS)
useRdf <- read_xlsx("trainbook_80perc.xlsx", sheet = "Table")
  
useRdf$pathString <- paste("Data Science Professional",
                           useRdf$group_title,
                           useRdf$area_type,
                           sep="/")

useRtree <- as.Node(useRdf, 
                    pathDelimiter = "/")

#JS to change node colors, needs tweaking
colorVector <- c("black", "red", "blue", "green", "orange", 
    rep("red", 5), rep("blue", 5), rep("green", 4), rep("orange", 4),
    rep("red", 11), rep("blue", 14), rep("green", 14), rep("orange", 11))

jsarray <- paste0('["', paste(colorVector, collapse = '", "'), '"]')
nodeStrokeJS <- JS(paste0('function(d, i) { return ', jsarray, '[i]; }'))

#plot with networkD3
useRtreeList <- ToListExplicit(useRtree, unname = TRUE)
radialNetwork(useRtreeList, nodeStroke = nodeStrokeJS)