Я очень новичок в javascript и dc.js. Я попытался удалить и обновить новые данные в линейной диаграмме после нажатия кнопки. Однако у меня возникли проблемы при перерисовывании линейной диаграммы. Некоторые области появились и перекрыли область графика. Вот картина линии диаграммы до и после перерисованы
Может кто-нибудь помочь мне с этим вопросом? Я очень ценю каждый ответ.Проблема на 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);
Спасибо так много! Я очень ценю каждый ответ.
Я верю вам, но я не могу воспроизвести это с такими маленькими данными. Вот моя сценарий того, что вы предоставили, с еще одним набором фиктивных данных такого же размера: http://jsfiddle.net/gordonwoodhull/becxo0fv/5/ - может быть, вы можете добавить к нему, чтобы он сломался? – Gordon
Вы попробовали очистить свой график с помощью 'yChart.resetSvg();' и перерисовать его полностью? – Pizzaboy