我试图让D3理解对象内的数组,以便D3识别要创建两个元素,一个元素创建10个元素,另一个元素创建6个元素。
如果我有一个标准数组,例如var myobj = [10,6]; D3理解这一点,并创建了两个元素。但是,如果将数组嵌入到如下所示的对象中,则D3将不会执行此操作。我的问题是a)为什么D3不明白这一点?b)如何使d3理解要创建两个元素?我看过d3.nested(),但我听不懂。
感谢您的帮助
var myobj =
[
{myarray:[10,6]}
];
xx.selectAll(".newrec")
.data(myobj)
.enter()
.append("rect")
.attr("class","newrec")
.attr("width",function (d) {return d.myarray; }) //for width D3 returns one element rectangle with width of "10,6" which is not a width!
;
如果您不想更改数据结构,则可以执行以下操作:
var myobj = [ {myarray:[10,6,7]} ];
d3.selectAll(".newrec")
.data(myobj[0].myarray)
.enter()
.append("rect")
.attr("class","newrec")
.attr("width",function (d) {console.log(d); return d});
这将创建3个rects
具有适当宽度的文件,例如:http : //jsfiddle.net/henbox/f3vqp7ct/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句