特定のキー値を持つノードをターゲットにすることはできますか?
「カテゴリ」を持つノード: データセットに別の色を割り当てようとしています。これは可能だと思います。次のようなifステートメントを書くことができるかどうか疑問に思っています
if(d.node.category ==dataset){
d3.select(this).style("fill", "yellow");
}
これが、ノードに色を追加する方法です
var z = d3.scale.category10();
var node = svg.selectAll("circle.node")
.data(nodes)
.enter().append("svg:circle")
.attr("r", function(d){return d.size*2})
.attr('class', 'generalClass')
.style("fill", function(d) { return z(d.parent); })
.style("stroke", "#000")
.style("stroke-width", "4px")
.call(force.drag);
私のJSONは次のようになります
function getNodes() {
var inNodes = {
"name": "APP",
"dept": "NYC",
"children": [
{
"name": "API 1",
"dept": "Third Party",
"size": 15,
"url": "http://www.nytimes.com/"
},
{
"name": "API 2",
"dept": "NYC",
"size": 15,
"url": "https://www.google.com/"
},
{
"name": "Dataset",
"category": "Dataset", // this one I am trying to assign a diff color fill
"dept": "Third Party",
"size": 15,
"url": "http://www.wired.com/",
}
],
"size":20,
"url": "http://www.nyc.gov/html/index.html"
};
return inNodes;
}