我有一個折線圖,每次頁面刷新都會改變數據,這很好,但我需要通過用戶單擊進行刷新。這是因爲頁面上最終會有其他輸入字段,刷新頁面會破壞當前會話。NVD3 - 如何刷新數據功能以產生新的點擊數據
的jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
下面是代碼的設置來創建行:
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
}
];
}
這裏是我試着寫,但更新失敗:
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);
在你的小提琴中,它給svg未定義在線 sel = svg.selectAll(「。nv-line」) 但svg沒有任何聲明或定義。 看看這個。 –