Слайдер D3 года позволяет область между шагами - PullRequest
1 голос
/ 22 февраля 2020

Я пытаюсь создать шаговый слайдер в d3 (v5) с 2010 по 2015 годы. (Используя плагин d3-simple-slider)

  var parseTime = d3.timeParse("%Y");
  a1 = parseTime("2010")
  a2 = parseTime("2015")
  var sliderStep = d3
    .sliderBottom()
    .domain([a1,a2])
    .width(300)
    .tickFormat(d3.timeFormat('%Y'))
    .on('onchange', <stuff>
    });

  var gStep = d3
    .select('div#slider-step')
    .attr("class","slider")
    .append('svg')
    .attr('width', 510)
    .attr('height', 100)
    .append('g')
    .attr('transform', 'translate(30,30)');

Однако показанный слайдер выглядит как включить область между «ступеньками» и годом тоже, кажется, продвигается. Есть ли способ иметь только точные точки на включенных шагах? Заранее спасибо!

enter image description here

1 Ответ

1 голос
/ 22 февраля 2020

Проблема связана с високосным 2012 годом. Чтобы преодолеть эту конкретную ситуацию, вы можете добавить метод шага как

.step(1000 * 60 * 60 * 24 * 366)

Но это не сделает все идеально. если вы проверите дату изменения, вы найдете это. Я думаю, что если вам нужно учитывать только годы, было бы неплохо сделать массив лет в качестве данных, и вы можете изменить этот массив, используя другую функцию в соответствии со сценарием.

...