Цвет связей между узлами в диаграмме Санки: networkD3 - PullRequest
0 голосов
/ 17 февраля 2019

Я ищу помощь в раскраске связей между узлами на графике Санки.Я использую пакет networkD3 в R для создания сюжета.Вот очень простой пример того, чего я хотел бы достичь:

library(networkD3)    
nodes <- c("a", "b", "c")
source <- c(0, 0)
target <- c(1, 2)
value <- c(5, 5)
cbind(source, target, value) -> links
as.data.frame(links) -> links
as.data.frame(nodes) -> nodes
sankeyNetwork(Links=links, Nodes=nodes, Source="source", 
              Target="target", Value="value")

Приведенный выше код создает простую диаграмму sankey со ссылками на 2 узла "b" и "c" из "a",Я хотел бы просто покрасить каждую ссылку, а не узел, другим цветом.Например, a-> b будет зеленым, а a-> c будет желтым.Я пытался следовать другим примерам, которые манипулируют цветовой шкалой, используя d3.scaleOrdinal(), но мне не повезло.Сюжет либо не отображается, либо остается серым.

1 Ответ

0 голосов
/ 17 февраля 2019
library(networkD3)    
nodes<-c("a","b","c")
source<-c(0,0)
target<-c(1,2)
value<-c(5,5)
cbind(source,target,value)->links
as.data.frame(links)->links
as.data.frame(nodes)->nodes

links$group <- "blue"
my_color <- 'd3.scaleOrdinal() .domain(["blue"]) .range(["blue"])'

sankeyNetwork(Links = links,Nodes = nodes,Source = "source",Target = 
                "target",Value = "value",  colourScale=my_color, LinkGroup="group")

Вам необходимо создать новый столбец в ваших ссылках с именами ссылок, которые вы хотите нарисовать, и картой, используя d3.scaleOrdinal каждое имя цветом.Наконец, передайте их в sankeyNetwork.В приведенном выше примере все ссылки будут окрашены в синий цвет

library(networkD3)    
nodes<-c("a","b","c")
source<-c(0,0)
target<-c(1,2)
value<-c(5,5)
cbind(source,target,value)->links
as.data.frame(links)->links
as.data.frame(nodes)->nodes


links$group[1] <- "blue"
links$group[2] <- "green"
my_color <- 'd3.scaleOrdinal() .domain(["blue", "green"]) .range(["blue", "green"])'

sankeyNetwork(Links = links,Nodes = nodes,Source = "source",Target = 
                "target",Value = "value",  colourScale=my_color, LinkGroup="group")

Этот будет делать синий и зеленый цвета

Подробнее здесь: https://www.r -graph-gallery.com / 322-Custom-цветы-в-Санки-диаграммы /

...