如何解决使用NetworkD3修改Sankey中的链接和节点颜色
我想更改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名称
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。