问题描述
我想更改Sankey中节点和链接的颜色。不幸的是,d3.scale.Ordinal()函数对我不起作用。 你有什么主意吗? 从概念上讲,左侧的节点应该与离开它们的链接具有相同的颜色。
如果您有任何想法,我会很高兴。 Sankey无需着色即可工作。 塞西
代码如下:
links2 <- data.frame(source=c(0,1,2,3,4,5,5),target=c(6,7,8,9,6,9),value=c(3,13,12,43,19))
nodes2 <-data.frame(name=c("Cow","Ice","Emu","Coala","Uhu","Panda","Pink","Cyan","Grey","Green"))
links2$group <- as.factor(c("type_a","type_b","type_c","type_d","type_e","type_f"))
nodes2$group <- as.factor(c("a","b","c","d","e","f","g","h","i","j"))
my_colour <- 'd3.scale.Ordinal().domain(["type_a","type_f","a","j"]),.range(["darkblue","gray45","khaki4","skyblue1","darkgoldenrod4","gray27","darkblue","darkgreen","forestgreen","yellowgreen","peru"])'
Network2 <- sankeyNetwork(Links=links2,Nodes=nodes2,Source = "source",Target = "target",Value = "value",NodeID = "name",sinksRight=FALSE,fontSize= 20,iterations=0,colourScale = my_colour,LinkGroup="group",NodeGroup="group")
```
解决方法
您要传递给sankeyNetwork
的JavaScript字符串中有三个错误。
-
networkD3
使用D3v4,而不是D3v3 ...d3.scale.Ordinal
的名称来自D3v3,而D3v4的等效名称为d3.scaleOrdinal
-
此位
]),.range([
应该为]).range([
-
您需要使用HTML color names而不是CSS3名称