Добавьте расстояние между осью и начальной точкой - PullRequest
0 голосов
/ 09 мая 2018

Я хочу добавить интервал между 0 и March по оси x, чтобы он выглядел лучше.

startdate и enddate рассчитываются по d3.min и d3.max.

Так что эти столбцы выглядят плохо из-за их ширины.

var x = d3.scaleTime().range([0, width]);

var datestart = d3.min(data, function(d) { return parseDate(d.date); });
var dateend = d3.max(data, function(d) { return parseDate(d.date);});

x.domain([datestart, dateend]);

enter image description here

Как я могу это сделать? Как добавить отступ, используя d3.scaleTime()?

1 Ответ

0 голосов
/ 09 мая 2018

Как вы упомянули в своем комментарии (может быть, ответ?), В шкале времени нет заполнения.

Таким образом, проблема здесь в том, что время от времени (без каламбура) появляется в 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 дней - это всего лишь предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...