указать цветовую схему для n узлов в сети D3 в R

Вопрос задан: 7 месяцев назад Последняя активность: 3 месяца назад
up 0 down

Я знаю, что в сети D3 вы можете указать цвет различных узлов, помещая их в группы. Например. 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"])')

Можно ли указать цвет узла для выбранных узлов, и тогда другие узлы могут быть произвольными цветами? Я пытаюсь сделать это так, чтобы, если мой набор данных большой, мне не нужно было знать, сколько существует групп, чтобы определить цвета групп, цвет которых может быть произвольным.

1 ответ

up 0 down

Вот пример того, как вы можете установить все узлы группы "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)

указать цветовую схему для n узлов в сети D3 в R