Я пытаюсь нарисовать диаграмму области с использованием dc.js, а конечная дата (то есть справа) диаграммы основана на текущей дате, а не на последняя дата в наборе данных. В тех случаях, когда есть дата разрыв между точками данных, я хочу область простирается от одного пункта к следующему, не ничьей в 0.dc.js: расширяющаяся линия и область до конца диаграммы
Учитывая эти данные:
var data = [
{domain: "foo.com", project: "pdp", repo: "myrepo", commit_date: "6/1/2014", lines_added: 100, lines_deleted: 50},
{domain: "foo.com", project: "pdp", repo: "myrepo", commit_date: "7/1/2014", lines_added: 100, lines_deleted: 50}
];
var ndx = crossfilter(data);
линия Картографическая/область заканчивается в точке данных «7/1/2014», но я хочу, чтобы она растянула всю длину диаграммы.
Соответствующий код для рисования диаграммы:
var dateDim = ndx.dimension(function(d) {return d.commit_date;});
var minDate = dateDim.bottom(1)[0].commit_date;
var maxDate = new Date();
var domainGroup = dateDim.group().reduceSum(function(d) {return d.cumulative_lines;});
unshippedlineChart
.width(500).height(200)
.dimension(dateDim)
.group(domainGroup)
.renderArea(true)
.x(d3.time.scale().domain([minDate,maxDate]))
.brushOn(false)
.interpolate('step-after')
.yAxisLabel("Unshipped Value");
Полный пример на http://jsfiddle.net/xayhkcvn/1/
Было бы неплохо иметь библиотеку адаптеров crossfilter, но пока есть только такой специальный код. – Gordon