I have a line chart, and every time a page refresh changes the data, it's great, but I need to refresh a user click. This is due to the fact that there will be other input fields on this page, and updating the page will destroy their current session.
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
Here is the code setup for creating a string:
function economyData() { // Rounds var numRounds = 10; // Stability of economy var stable = 0.2; var unstable = 0.6; var stability = unstable; // Type of economy var boom = 0.02; var flat = 0; var poor = -0.02; var economyTrend = boom; // Range var start = 1; var max = start + stability; var min = start - stability; // Arrays var baseLine = []; var economy = []; // Loop for (var i = 0; i < numRounds + 1; i++) { baseLine.push({x: i, y: 1}); if (i == 0) { economyValue = 1; } else { var curve = Math.min(Math.max( start + ((Math.random() - 0.5) * stability), min), max); economyValue = Math.round( ((1 + (economyTrend * i)) * curve) * 100) / 100; } economy.push({x: i, y: economyValue}); } return [ { key: 'Base Line', values: baseLine }, { key: 'Economy', values: economy } ]; }
Here is what I tried to write but failed to update:
function update() { sel = svg.selectAll(".nv-line") .datum(data); sel .exit() .remove(); sel .enter() .append('path') .attr('class','.nv-line'); sel .transition().duration(1000); }; d3.select("#update").on("click", data);
source share