javascript - 更新/重绘折线图时 dc.js 出现问题

标签 javascript d3.js linechart dc.js crossfilter

我对 javascript 和 dc.js 非常陌生。单击按钮后,我尝试删除并更新折线图中的新数据。但是,当重新绘制折线图时,我遇到了一些问题。一些区域出现并与图表区域重叠。这是重新绘制之前和之后的折线图的图片 Original version After updated the new data After switched the data back to the previous data 有人可以帮我解决这个问题吗?我真的很感激每一个答案。

谢谢!

这是我的代码

   **Just sample code, I have 5000 objects in my array**
    var data2 = [{"year": 2010,"total": 1}, 
                {"year": 2010,"total": 1},
                {"year": 2000, "total":1},
                {"year": 2000, "total":1},
                {"year": 1950, "total":1},                    
                {"year": 1950, "total":1},
                {"year": 1987, "total":1},
                {"year": 1987, "total":1},                    
                {"year": 2000, "total": 1}];
     var dataCrossfilter = crossfilter(data2);
       var yearDimension = dataCrossfilter.dimension(function (d) {
           return d.year;
           });
       var yearGroup = yearDimension.group().reduceSum(function (d) {
           return d.total;
           });     

       var yChart = dc.lineChart("#yChart");

        yChart.width(960)
        .height(300)
        .margins({top: 10, right: 10, bottom: 20, left: 40})
        .x(d3.scale.linear().domain([1800,2020]))
        .dimension(yearDimension)
        .group(yearGroup)
        .renderArea(true)           
        .brushOn(true)
        .transitionDuration(1500)
        .elasticY(true)
        .elasticX(true)
        .xAxis();

    dc.renderAll();

////用于加载按钮

var load_button = function(data) {
            return function load_it() {
                    dataCrossfilter.remove();
                    dataCrossfilter.add(data);
                    dc.redrawAll();
            }
        }

    button1 = load_button(data1);
    button2 = load_button(data2);

非常感谢!我真的很感谢每个答案。

最佳答案

您必须按日期对数据进行排序。 AMCharts 也有同样的毛病。

关于javascript - 更新/重绘折线图时 dc.js 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732380/

相关文章:

javascript - 如何在 Angularjs 中默认仅启用事件选项卡并禁用所有其他选项卡?

javascript - Rails 将日期对象传递给 JavaScript

javascript - 在 D3 中为每个栏添加不同的颜色

javascript - 如何在 Angular 6的折线图chart.js中仅显示每15个x标签?

javascript - Angular-nvD3(krispo) 带 ng-repeat 的单线图

java - 将 CSS 应用于 FXML 中的堆叠图表

JavaScript 图表库 - Google Analytics 风格

调用者上下文中的 Javascript 调用方法

javascript - D3中动态更新图表数据

javascript - 如何在 D3 中 append 多个矩形?