Javascript D3 js编码特殊符号在TreeDiagram中的使用与.size()属性数据相关的大小更改

Javascript D3 js编码特殊符号在TreeDiagram中的使用与.size()属性数据相关的大小更改,javascript,d3.js,Javascript,D3.js,全新的从未编码过任何东西,但缓慢发展的D3JS爱好者。我想在我的工作场所以一种新的方式展示一些财务数据,我认为这很酷很有趣。 通过不同的技术阅读、学习,最终将不同的代码片段组合在一起,这些代码能够很好地编码,我取得了相当好的效果,令我惊讶的是,它起了作用,即带有子节点的Treediagram 有一件事我做不到,我想改变特殊符号的大小——更大的数字->更大的符号,通过缩放将它们与数据关联,使它们可见和可伸缩 下面是我试图做的: -数据片段 data = [{"name":"AA ","paren

全新的从未编码过任何东西,但缓慢发展的D3JS爱好者。我想在我的工作场所以一种新的方式展示一些财务数据,我认为这很酷很有趣。 通过不同的技术阅读、学习,最终将不同的代码片段组合在一起,这些代码能够很好地编码,我取得了相当好的效果,令我惊讶的是,它起了作用,即带有子节点的Treediagram

有一件事我做不到,我想改变特殊符号的大小——更大的数字->更大的符号,通过缩放将它们与数据关联,使它们可见和可伸缩

下面是我试图做的:

-数据片段

data =  [{"name":"AA ","parent":"null","actual":391,"plan":349,"year":349,"children": [
{姓名:AB,父母:AA,实际:11346,计划:14429,年份:14429,}, {姓名:AC,父母:AA,实际:559,计划:558,年份:558,},]}]

var xScale = d3.scale.linear()
.domain([d3.min(data, function(d) { return d[2]; }), d3.max(data, function(d) { return d[2]; })])
.range([100, 200]);

... some code ....

nodeEnter.append("path")
    .style("stroke", "black")
    .style("fill", "white")
    .style("fill", function(d) {        
    var a = d.actual ;
    var y = d.year;
    if ( a/y > 1 && a/y <= 1.2 ) { return "rgb(255,192,203)";}
        else if (a/y > 1.2) { return "rgb(255,0,0)";}   
        else if (a/y > 0 && a/y <= 0.8) { return "rgb(34,139,34)";}
        else if (a/y > 0.8 && a/y < 1) { return "rgb(152,251,152)";}
        else { return "rgb(255,255,0)";}
        }   
     )
    .attr("d", d3.svg.symbol()
    .size(xScale(d[2])) 
    .type(function(d) { if
        (d.actual - d.year> 0) { return "triangle-down"; } else if
        (d.actual - d.year < 0) { return "triangle-up";} else
        { return "square";}
    })
);    
如果只使用.size200,那么所有这些都可以与.sizexScaled[2]配合使用,这是不可能的。我知道,尽管读了很多文章和教程,但从未遇到过解决方案,我一无所知,所以你是我最后的选择。我只需要一点提示,在哪里寻找解决方案。 谢谢你的时间和帮助
Zbyszek PL

什么是d[2]?从你的数据来看,d不是一个ArrayTanks,它应该是json结构,它的工作原理类似于一个,我试图引用它的第二个元素,显然我不能,我现在理解了。但是如何引用嵌套数组呢?例如,d.children[0]就是名为AB的对象:-非常感谢,一步一步地,顺便说一句,我了解了越来越多,您可以解释与上述主题相关的培养我的问题:是否可以使用缩放方法更改符号节点(例如三角形)的大小,并将输入数据与输出范围关联。事实上,这就是我想问的问题:-…谢谢你的帮助,到目前为止,我支持Zbyszek:-我在上面提到的例子中添加了一些更明确的例子。。Data=[1,3,[1,3,5],5,8]我的范围即三角角的大小限制在[200300]我想将数据与表示三角形大小的范围联系起来。我在这一点上停了下来。到目前为止,我使用if语句来选择三角形的大小,但幻想着将其自动化,也许我的努力毫无意义?