0
我是Protovis的新手,儘管它不再處於開發階段,而D3是較新的軟件。然而,我使用Protovis的Node-Link樹顯示我的數據出於各種原因,所以我更願意堅持Protovis,但是如果任何人有一個R包,記住我還沒有遇到過(除了dendextend, ggplot2,d3network等)讓我使用R而不是Protovis請讓我知道。總之,我對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.