Как вы упомянули в своем комментарии (может быть, ответ?), В шкале времени нет заполнения.
Таким образом, проблема здесь в том, что время от времени (без каламбура) появляется в SO: вы используете не тот инструмент для этой задачи. Гистограммы всегда должны использовать категориальную (качественную) шкалу, а не количественную шкалу или шкалу времени.
Однако, если вам действительно нужно использовать здесь шкалу времени (по любой причине), вы можете добавить заполнение в домен, используя offset .
Например, это вычтет 15 дней в начале вашего домена и добавит 15 дней в конце:
var datestart = d3.min(data, function(d) {
return d3.timeDay.offset(parseDate(d.date), -15);
//subtract 15 days here ---------------------^
});
var dateend = d3.max(data, function(d) {
return d3.timeDay.offset(parseDate(d.date), 15);
//add 15 days here -------------------------^
});
Вы можете изменять это значение до тех пор, пока не получите адекватный отступ. Поскольку я не знаю, как вы рассчитываете ширину баров (опять же, бары не должны использоваться в масштабе времени), 15 дней - это всего лишь предположение.