我是新的dev d3js。我在json [{},{}]中得到bar的值?帮我。我的代码
[{value: 11}, { value: 111}]
谢谢。
答案 0 :(得分:0)
您的代码有多个问题。
names.length
但名称未定义。我认为你的意思是json.length
chart.selectAll("rect").data(data)
但数据(参数)未定义。我认为你的意思是data(json)
您正在直接使用比例尺,而您的数据不是他们期望的域中的值:
chart.selectAll("rect")
...
.attr("y", y)
.attr("width", x)
这仅适用于选择的数据在比例域中具有值的情况。在这种情况下,您的数据是value
和name
属性位于比例范围内的对象,因此:
chart.selectAll("rect")
...
.attr("y", function(d) { return y(d.name); })
.attr("width", function(d) { return x(d.value); })
您的文字节点的类似问题:
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/