1
我已經經歷了幾個d3教程,但我對動畫(即轉換等)如何工作有點困惑。我的D3.js代碼會將新數據添加爲新圖形,我希望將其添加到現有圖形中。我做錯了什麼?
我在服務器上有一個csv文件正在更新一個單獨的進程,我想我的小網頁圖形數據。
這是我的。
正如你所看到的,我的問題是每10秒鐘附加一個新圖形,而不是更新當前圖形,只畫出新點。爲了達到這個效果,我需要改變什麼?
$(document).ready(function() {
$.ajaxSetup({ cache: false });
setInterval(function() {
$('#file').load('file.csv', function(){
var input = $('#file').html();
var data = $.csv.toObjects(input);
var price = [];
var time = [];
for (var row in data){
price.push(data[row]["Price"]);
}
for (var row in data){
time.push(data[row]["Time"]);
}
var data = price;
w = 400,
h = 200,
margin = 20,
y = d3.scale.linear().domain([0, d3.max(data)]).range([0 + margin, h - margin]),
x = d3.scale.linear().domain([0, data.length]).range([0 + margin, w - margin])
var vis = d3.select("body")
.append("svg:svg")
.attr("width", w)
.attr("height", h);
var g = vis.append("svg:g")
.attr("transform", "translate(0, 200)");
var line = d3.svg.line()
.x(function(d,i) { return x(i); })
.y(function(d) { return -1 * y(d); })
g.append("svg:path").attr("d", line(data));
....
}, 10000);
});
非常感謝您的意見!