Я пытаюсь выбрать ветку my tree и назначить каждому (родительскому и двум уровням детей) уникальный цвет. В моем примере ниже изображены родительские узлы справа и leafnodes слева.d3.js Tree - Назначить уникальный цвет родителям и их детям
Мои иерархические данные имеют глубину в три уровня (название: «Специальность» >> имя: «Местоположение» >> LeafNode, содержащий «Поставщик», «Местоположение», «Специальность»). Я думаю, мне нужно проверить каждый объект Leafnode как путь рисуется -
d.source.children.children.children.Specialty == d.source.children.name
, но не может поставить это вместе, чтобы заставить его работать. Как я рисую пути, как я могу назначить уникальный цвет каждой ветке?
var link = canvas.selectAll(".link")
.data(links)
.enter().append("path")
.attr("d", diagonal)
.attr("stroke-width", 1)
.attr("fill", "none")
.attr("stroke", function(d){
return color(d.target.name == d.target.name ? d : "#111"); //<< huh?
})
В вашей функции генерации json добавьте переменную категории, а также переменную имени. Как только вы это сделали, это просто вопрос отображения некоторых цветов для штриха. Поэтому вам нужно будет настроить цветовую шкалу, называемую 'colours', а затем в генераторе ссылок добавить что-то вроде; 'attr. (« stroke », function (d, i) {return colors (d.source.category);})' – user1614080