zu erstellen Ich habe ein Liniendiagramm und jedes Mal aktualisiert die Seite die Daten, die groß ist, aber ich muss durch einen Klick auf den Benutzer aktualisieren. Dies liegt daran, dass auf der Seite eventuell andere Eingabefelder vorhanden sind und das Aktualisieren der Seite ihre aktuelle Sitzung zerstören würde.NVD3 - Wie aktualisiert man die Datenfunktion, um neue Daten bei Klick
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
Hier ist der Code-Setup die Zeile zu erstellen:
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
}
];
}
Hier ist, was ich versucht für die Aktualisierung zu schreiben, aber fehlgeschlagen:
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);
in Ihrer Geige, es gibt Svg ist undefined in Zeile sel = svg.selectAll (". Nv-line") Aber Svg ist nirgendwo deklariert oder definiert. Schauen Sie sich das an. –