Исправление порядка потокового графа Санки в пакете R / networkD3 - PullRequest
0 голосов
/ 07 сентября 2018

Я хотел бы визуализировать изменение ранга (то есть изменение относительного порядка) штатов США с использованием потокового графа Санки. Я использую пакет и придумал следующее:

library(dplyr)
library(networkD3)

df <- data_frame(origins=state.name[1:10], destinations=state.name[1:10])
lab <- c(df$origins, df$destinations)
nodes <- data.frame(node=c(0:9), name=lab)
links <- data.frame(source=c(0:9), target=c(10:19), value=rep(1,10))
sankeyNetwork(Links = links, Nodes = nodes, Source = 'source', 
              Target = 'target', Value = 'value', NodeID = 'name')

Этот фрагмент создает следующий график: Санки потоковый график штатов США enter image description here

Теперь я могу изменить относительный порядок вручную. Однако мне интересно, можно ли исправить порядок справа и поставить, например, Алабама на 3-м ранге, Калифорния на 1-м ранге и т.д ...

1 Ответ

0 голосов
/ 08 сентября 2018

Если вы установите iterations = 0 в sankeyNetwork(), вы фактически отключите алгоритм, который автоматически определяет размещение узлов (что является основной целью функции sankeyNetwork()), и узлы будут расположены в порядке, они появляются в кадре данных Nodes.

library(networkD3)

states <- state.name[1:10]
ranks <- sample.int(10)

nodes <- data.frame(name = c(states, states[ranks]))
links <- data.frame(source = 1:10 - 1, target = order(ranks) + 10 - 1, value = 1)

sankeyNetwork(Links = links, Nodes = nodes, Source = 'source', 
              Target = 'target', Value = 'value', NodeID = 'name',
              iterations = 0)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...