Tôi đang cố gắng tạo thanh sơ đồ thời gian thực vẽ các giá trị theo thời gian, sử dụng d3.jsGắn thêm phần tử vào phần tử hiện có trong d3.js
Đây là cách tôi đang thực hiện.
var dataset = [ 5, 10, 15, 20, 25 ];
var w = 1800;
var h = 500;
var barPadding = 1;
setInterval(function(){
dataset.push(Math.floor(Math.random()*51));
draw();
},1000);
function draw(){
d3.select("svg").remove();
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
svg.selectAll("rect").data(dataset)
.enter()
.append("rect")
.attr("x", function(d, i){return 12*i;})
.attr("y", function(d){return h -d*4; })
.attr("width", 11)
.attr("height", function(d) { return d * 4; })
.attr("fill", "teal")
.attr("fill", function(d) { return "rgb(0, 0, " + (d * 10) + ")";});
}
Vấn đề là tôi vẽ lại toàn bộ biểu đồ mỗi khi giá trị mới được thêm vào mảng dữ liệu.
Làm cách nào để thêm thanh vào biểu đồ thanh đã được vẽ, mỗi khi một giá trị mới được thêm vào mảng, thay vì vẽ lại nó mỗi lần?
Đọc và đọc lại: http://bost.ocks.org/mike/join/ và https://github.com/mbostock/d3/wiki/Selections#wiki-data – Wex