Изменение цвета в дереве узлов-связей protovis

Я новичок в Protovis, хотя он больше не разрабатывается, а D3 — более новое программное обеспечение. Тем не менее, я использую Node-Link Tree от Protovis для отображения своих данных по разным причинам, поэтому я предпочитаю придерживаться Protovis, однако, если у кого-то есть пакет R, с которым я еще не сталкивался (кроме dendextend, ggplot2, d3network и т. д.), чтобы я мог использовать R вместо Protovis, пожалуйста, дайте мне знать. Во всяком случае, фрагмент моих данных для Protovis выглядит так:

var PB = {
    PBC03013: {
"103937011_PbUn_2838": 3013,
"103934808_PbUn_26206": 3013,
"103930675_PbUn_35145": 3013,
"103941984_PbUn_52102": 3013,
"103935933_PbUn_63128": 3013,
"103966210_PbUn_64271": 3013
},
PBC03018: {
"103935981_PbUn_53113": 3018,
"103934997_PbUn_59093": 3018,
"103936640_PbUn_65330": 3018,
"103955166_PbUn_112582": 3018
},
...
}
}
I'm trying to change the node colors such that the dots for the elements in PB03013 and PB03018 are different, say "green" and "red", respectively. So all of the PB03013 element dots are green and all of the PB03018 element dots are red. There are 10 nodes in total. I've done a lot of research on this but I'm having such a hard time setting different dot colors I decided to post for help.  

This is the body of my html code:
var tree = vis.add(pv.Layout.Tree)
    .nodes(pv.dom(PB).root("PB").nodes())
    .depth(127)
    .breadth(7.25)
    .orient("radial");

tree.link.add(pv.Line);

tree.node.add(pv.Dot)
    .fillStyle(function(n) n.firstChild ? "#a1d99b" : "#de2d26");

tree.label.add(pv.Label);

So far, I've been using pv.Color pallets or n.key n.parentNode, etc code alterations to no success. I also set a new variable to force different colors like:
var re = "",
    color = pv.Colors.category19().by(function(d) d.parentNode.nodeName)
    nodes = pv.dom(PB).root("PB").nodes();

Then:

treemap.leaf.add(pv.Panel)
    .fillStyle(function(d) color(d).alpha(title(d).match(re) ? 1 : .2))

The node-link tree code can also be found here: 
http://mbostock.github.io/protovis/ex/tree.html  

Any help is greatly appreciated.

person user2502338    schedule 15.02.2017    source источник


Ответы (1)


networkD3 является преемником d3Network, обладает гораздо большими возможностями и может удовлетворить ваши потребности. В частности, текущая версия для разработчиков (v0.4.9000 от 06.09.2017) имеет новую функцию treeNetwork, которая очень функциональна, включая возможность явно задавать цвет каждого отдельного узла и ссылки. Мы будем рады получить отзывы, так как он все еще находится в разработке.

person CJ Yetman    schedule 06.09.2017