2015-02-26 1 views
1

Я очень новичок в javascript и dc.js. Я попытался удалить и обновить новые данные в линейной диаграмме после нажатия кнопки. Однако у меня возникли проблемы при перерисовывании линейной диаграммы. Некоторые области появились и перекрыли область графика. Вот картина линии диаграммы до и после перерисованы Original version After updated the new data After switched the data back to the previous data Может кто-нибудь помочь мне с этим вопросом? Я очень ценю каждый ответ.Проблема на dc.js при обновлении/перерисовании строки строки

Спасибо!

Вот мой код

**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); 

Спасибо так много! Я очень ценю каждый ответ.

+0

Я верю вам, но я не могу воспроизвести это с такими маленькими данными. Вот моя сценарий того, что вы предоставили, с еще одним набором фиктивных данных такого же размера: http://jsfiddle.net/gordonwoodhull/becxo0fv/5/ - может быть, вы можете добавить к нему, чтобы он сломался? – Gordon

+0

Вы попробовали очистить свой график с помощью 'yChart.resetSvg();' и перерисовать его полностью? – Pizzaboy

ответ

0

Вы должны сортировать свои данные по дате. AMCharts страдает от той же болезни.

 Смежные вопросы

  • Нет связанных вопросов^_^