Ho un grafico a linee e ogni volta che la pagina si aggiorna cambia i dati, il che è ottimo ma ho bisogno di aggiornare un clic dell'utente. Questo perché alla fine ci saranno altri campi di input sulla pagina e l'aggiornamento della pagina distruggerebbe la loro sessione corrente.NVD3 - Come aggiornare la funzione dati ai nuovi dati del prodotto al momento del clic
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
Ecco l'impostazione del codice per creare la linea:
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
}
];
}
Qui è quello che ho cercato di scrivere, ma non riuscito per l'aggiornamento:
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);
nel tuo violino, sta dando svg non è definito alla riga sel = svg.selectAll (". Nv-line") Ma svg non è stato dichiarato o definito da nessuna parte. Dai un'occhiata a questo. –