第二个实时更新图表没有使用多个d3图表更新

时间:2013-09-26 22:30:24

标签: javascript html graphics d3.js live

有没有人遇到过在两个单独的html容器中运行两个实时更新图表的问题,而且只有一个图表会更新新数据?当页面上只有一个图表(图表)时,一切都有效,但是当有两个图表时,两个图表都有效(它们是交互式的)但是一个图表不能用实时数据更新吗?

我使用d3生成两个图表作为两个对象,并将每个图表放在一个单独的容器中(我有一个单独的脚本用于生成名为SomeChart.js的图表),然后在每个图表上调用更新数据方法:

我运行以下两个代码来创建变量:firstChart(在容器ID中的FirstChartContainerID')secondChart(在容器ID中的SecondChartContainerID')

d3.csv("data.csv", function(error, data) {
    data.forEach(function(d) {
        d.time = parseDate(d.time);
        d.data = +d.data;
    });
    var firstChart = new SomeChart('FirstChartContainerID', data);    
    setInterval(function(){
        d3.csv("updatingdata.csv", function(error, newData) {
            firstChart.updateData(newData);
        });    
    }, 30000);
});

然后使用SomeChart.js中的'update'方法更新每个图表

this.updateData = function(newData) {
    j = data.length;
    for(i = 0; i < newData.length; i++){
        data[j] = {"time": parseDate(newData[i].time), "data": +(newData[i].data)}
        j++;
    }
    redrawAxesContext(true); redrawYAxesFocus(true);
    redrawLines();
    $(container).trigger('LineGraph:dataModification')
}

0 个答案:

没有答案