Шкала времени всегда будет очень буквальной о том, как она отображает даты по x координатам. У него нет понятия «пропуска даты».
Вместо этого я бы предложил использовать для этой цели порядковую шкалу. Используя порядковый масштаб, вы решаете, какие именно входные и выходные значения будут. dc.js также поможет вам, автоматически определив входные (доменные) значения.
Скажите диаграмме использовать порядковый масштаб, как этот:
chart
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
Удалите все пустые даты, подобные этой. remove_empty_bins
- это из FAQ , но я изменил его, чтобы посмотреть на элемент count
.
function remove_empty_bins(source_group) {
return {
all:function () {
return source_group.all().filter(function(d) {
//return Math.abs(d.value) > 0.00001; // if using floating-point numbers
return d.value.count !== 0; // if integers only
});
}
};
}
var nz_tGroup = remove_empty_bins(tGroup),
nz_eGroup = remove_empty_bins(eGroup);
chart
.group(nz_tGroup)
.stack(nz_eGroup, "E")
Только вопрос в том, что если в будний день нет данных? Вы все еще хотите, чтобы это упало до нуля? В этом случае, я думаю, вам, вероятно, придется изменить фильтр в remove_empty_bins
выше.
Вилка вашей скрипки.