我知道在networkD3中,您可以通过将不同的节点分组来指定它们的颜色。
例如。
nodes = data.frame(id = c(0,1,2), name = c("Node 1", "Node 2", "Node 3"), group = c("1","2","3"))
JS('d3.scaleOrdinal().domain(["1", "2", "3"]).range(["#000000", "#111111", "#222222"])')
我想指定选定数量的节点(例如,仅节点1),但是其余节点(例如,节点2和3)可以是任意颜色。
通过执行以下操作,所有节点将具有相同的颜色:
JS('d3.scaleOrdinal().domain(["1"]).range(["#000000"])')
是否可以为选择的节点指定节点颜色,然后其他节点可以是任意颜色?我正在努力做到这一点,以便如果我的数据集很大,则不需要知道有多少组来定义其颜色可以是任意的组的颜色。
答案 0 :(得分:0)
这里是一个示例,说明如何将“ 1”组的所有节点设置为黑色,而所有其他节点都从d3.schemeCategory20
...中获得随机颜色...
library(networkD3)
colorfunc <- JS('colorfunc = function(i) { return i == 1 ? "#000" : d3.schemeCategory20[Math.floor(Math.random()*20)] };')
forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
Group = "group", colourScale = colorfunc, opacity = 1)