Tôi có biểu đồ đường và mỗi lần làm mới trang sẽ thay đổi dữ liệu, điều này thật tuyệt vời nhưng tôi cần phải làm mới bằng nhấp chuột của người dùng. Điều này là do cuối cùng sẽ có các trường nhập khác trên trang và làm mới trang sẽ phá hủy phiên hiện tại của chúng.NVD3 - Cách làm mới chức năng dữ liệu để tạo dữ liệu mới khi nhấp vào
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
Đây là thiết lập mã để tạo dòng:
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
}
];
}
Dưới đây là những gì tôi đã cố gắng để viết nhưng không cho cập nhật:
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);
trong fiddle của bạn, nó cho svg là không xác định tại dòng sel = svg.selectAll (". Nv-line") Nhưng svg không được khai báo hoặc xác định. Có một cái nhìn về điều này. –