R - массив JS в диагональной сети

Мой вопрос касается:

R обводка узла цвета networkD3 для radioNetwork()

Всякий раз, когда я создаю и использую цветовой вектор (контекст указан в ответе ссылки), diagonalNetwork() неправильно распределяет цвета узлов.

Есть ли способ узнать, как diagonalNetwork() переупорядочивает ввод данных в него? Сетевые метки и структура верны. Только цвета нет.


person Cam K    schedule 02.07.2018    source источник


Ответы (1)


Цвета применяются для каждого уровня, а затем в том порядке, в котором данные были изначально. В этом примере цвета упорядочены так, что корень — черный, провинции — красные, а города — синие.

library(networkD3)

CanadaPC <- list(name = "Canada", children = 
                   list(list(name = "Newfoundland",
                             children = list(list(name = "St. John's"))),
                        list(name = "PEI",
                             children = list(list(name = "Charlottetown"))),
                        list(name = "Nova Scotia",
                             children = list(list(name = "Halifax"))),
                        list(name = "New Brunswick",
                             children = list(list(name = "Fredericton"))),
                        list(name = "Quebec",
                             children = list(list(name = "Montreal"),
                                             list(name = "Quebec City"))),
                        list(name = "Ontario",
                             children = list(list(name = "Toronto"),
                                             list(name = "Ottawa"))),
                        list(name = "Manitoba",
                             children = list(list(name = "Winnipeg"))),
                        list(name = "Saskatchewan",
                             children = list(list(name = "Regina"))),
                        list(name = "Nunavuet",
                             children = list(list(name = "Iqaluit"))),
                        list(name = "NWT",
                             children = list(list(name = "Yellowknife"))),
                        list(name = "Alberta",
                             children = list(list(name = "Edmonton"))),
                        list(name = "British Columbia",
                             children = list(list(name = "Victoria"),
                                             list(name = "Vancouver"))),
                        list(name = "Yukon",
                             children = list(list(name = "Whitehorse")))
                   ))

colorVector <- c("black", rep("red", 13), rep("blue", 16))

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

diagonalNetwork(List = CanadaPC, nodeStroke = nodeStrokeJS)

введите здесь описание изображения

person CJ Yetman    schedule 03.07.2018
comment
Спасибо за помощь! Чтобы упорядочить данные по глубине дерева, я сделал следующее: asdf‹-rbind(1:length(CEO_depth),CEO_depth) abcd‹-split(asdf[1,1:dim(asdf)[2]],asdf [2,1:dim(asdf)[2]]) diagindex‹-c() for (n5 in 1:length(abcd)){ qwer‹-unlist(abcd[n5]) for (n6 in 1:length( unlist(qwer))){ diagindex‹-rbind(diagindex,as.numeric(as.character(unlist(qwer)[n6]))) } } color3‹-color2[diagindex] - person Cam K; 08.07.2018
comment
Теперь мне просто нужно выяснить, как форматировать комментарии переполнения стека. - person Cam K; 08.07.2018