分组条形图

时间:2014-02-01 14:12:54

标签: javascript d3.js

大家好我想用d3js绘制一个分组的条形图 我想通过几个教程,最后尝试使用此代码:

<script>
var data = [[10,20,30,40,50],[20,20,40,50,60]];
var canvas = d3.select("body")
    .append("svg")
    .attr("width",500)
    .attr("height",500);
    canvas.selectAll("rect")
        .data(data)
        .enter()
        .append("rect")
        .attr("height",function(d){return d*10;})
        .attr("width",50)
        .attr("x",function(d,i){return i*60})
        .attr("y",function(d,i){return 500-(d*10);})
        .attr("fill","red");
</script>

有一些错误。如何设置分组图表的数据..

1 个答案:

答案 0 :(得分:0)

要回答您的第一个问题,您使用的错误来自您选择的数据结构。由于.data(data).enter()子句的工作方式,会发生错误。

整个子句将隐式迭代outter数组中第一级的元素。这是传递给

的每个元素d

.attr("height",function(d){...) .attr("x",function(d)...) and .attr("y",function(d)...)是一个数组。因此,每个函数的内部都使用数组上的常量操作,这没有任何意义。在javascript中澄清d * [1,2,3,4]的含义是什么?

回答你的第二个问题。如果要创建分组条形图,请查看以下链接:http://bl.ocks.org/mbostock/3887051