-1

我是新开发的 d3js。我在 json [{},{}] 中得到 bar 的值?帮我。我的代码

[{value: 11}, { value: 111}]

http://jsfiddle.net/Y8fU5/

谢谢你。

4

1 回答 1

0

您的代码有多个问题。

  1. 您引用names.length但名称未定义。我想你的意思是json.length
  2. 您调用chart.selectAll("rect").data(data)但数据(参数)未定义。我想你的意思是data(json)
  3. 您正在直接使用比例尺,其中您的数据不是他们期望的域中的值:

    chart.selectAll("rect")
        ...
        .attr("y", y)
        .attr("width", x)
    

    这仅在选择的数据具有比例域中的值时才有效。在这种情况下,您的数据是valuename属性位于比例域中的对象,因此:

    chart.selectAll("rect")
        ...
        .attr("y", function(d) { return y(d.name); })
        .attr("width", function(d) { return x(d.value); })
    
  4. 您的文本节点的类似问题:

    chart.selectAll("text")
        ...
        .attr("x", x)
        .attr("y", function(d){ return y(d) + y.rangeBand()/2; } )
        ...
        .text(String);
    

    相反,您需要显式访问对象属性:

    chart.selectAll("text")
        ...
        .attr("x", function(d) { return x(d.value); })
        .attr("y", function(d) { return y(d.name) + y.rangeBand()/2; } )
        ...
        .text(function(d){return d.name;});
    

这是一个工作小提琴:http: //jsfiddle.net/Smrm3/

于 2013-08-13T19:48:09.157 回答