我已经简要地浏览了几个 d3 教程,但我对动画(即变换等)的工作方式有点困惑。
我在服务器上有一个 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);
});
非常感谢您的评论!