NVD3 - Comment faire pour actualiser les données en fonction du produit de nouvelles données sur cliquez sur
J'ai une ligne graphique et à chaque fois que l'actualisation de la page, il change les données, ce qui est excellent, mais j'ai besoin de rafraîchir par un clic de l'utilisateur. C'est parce qu'il y aura éventuellement être d'autres champs de saisie sur la page et l'actualisation de la page de détruire leur session en cours.
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
Voici le code de configuration pour créer la ligne:
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
}
];
}
Voici ce que j'ai essayé d'écrire, mais a échoué pour la mise à jour:
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);
- dans votre violon, c'est de donner le svg n'est pas défini à la ligne sel = svg.selectAll(".nv-line"), Mais le format svg est pas déclarée ou définie. Jetez un oeil sur cette.
Vous devez vous connecter pour publier un commentaire.
Voici ce que j'ai fait différemment avec votre code.
Voici comment le
update()
fonction ressemble:Voici un lien vers un version de travail de votre code.
Espère que cela aide.