0
请看下面的fiddle。 当您单击按钮时,它会更新数据。我没有得到的一件事是在draw()函数中做bar.exit().remove()
的目的。基本d3js数据更新
function draw(data) {
var scale = d3.scale.linear()
.domain([0, 50])
.range([0, 100]);
var bars = d3.select("#work_queues_chart")
.selectAll("div")
.attr("id","work_queues_chart")
.data(data);
// enter selection
bars
.enter().append("div");
// update selection
bars
.style("width", function (d) {return scale(d) + "%";})
.text(function (d) {return d;});
// exit selection
bars
.exit().remove();
};
它是否删除在输入新数据之前存在的旧数据?如果是这样,不应该在setting bars.data(data)
之前调用?任何启发将不胜感激!
更新:
function draw(data) {
var bars = d3.select("body")
.selectAll("div")
.data(data);
var charts = bars
.enter().append("div")
.attr("class", "bar")
charts
.selectAll("button")
.append("button")
.text(function (d) {
console.log(d)
return d.name; })
.attr("class", "my-button")
bars
.style("width", function (d) {return d.val*10 + "px";})
.text(function (d) {
return d.name; });
bars
.exit().remove();
};
我得到了更新部分的工作,但现在的按钮无法正常追加。我如何追加按钮有什么问题吗?
这很有道理!那我该如何更新现有数组的值呢?比方说,最初的数组有[1,2,3,4,5],我希望它有[4,4,4,4,4]并绘制它。 – 2014-10-31 15:29:44
你已经有这个工作,不是吗?这是由您标记'/ /更新选择' – meetamit 2014-10-31 16:29:43
您可以看看我更新的代码,看看我做错了每个条形图的追加按钮元素的块吗? – 2014-10-31 16:38:19