मैं एक वास्तविक समय barchart कि समय के साथ मूल्यों भूखंडों, d3.jsd3.js
का उपयोग कर इस तरह मैं यह कर रहा हूँ बनाने के लिए कोशिश कर रहा हूँ में एक मौजूदा तत्व को एक तत्व जोड़।
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) + ")";});
}
समस्या यह है कि जब भी डेटा सरणी में कोई नया मान जोड़ा जाता है तो मैं पूरे ग्राफ को फिर से चला रहा हूं।
मैं बार बार ग्राफ में बार बार कैसे जोड़ूं जो पहले से खींचा गया है, हर बार जब कोई नया मान सरणी में जोड़ा जाता है, तो हर बार इसे फिर से निकालने के बजाय?
पढ़ें और पुनः पढ़ें: http://bost.ocks.org/mike/join/ और https://github.com/mbostock/d3/wiki/Selections#wiki-data – Wex