У меня обычная шкала времени:
band.xScale = d3.time.scale()
.domain([data.minDate, data.maxDate])
Что я хочу изменить с увеличением:
var zoom = d3.behavior.zoom()
.scaleExtent([1, 10])
.on("zoom", zoomed);
function zoomed() {
console.log(d3.event.scale);
var oldDomain = bands[0].xScale.domain();
var newDomain = ??? oldDomain * d3.event.scale ???
bands[0].xScale.domain(newDomain);
bands[0].redraw();
}
Другими словами, преобразуйте домен [date1, date2]
в новый массив с новыми датами.
Я мог бы сам рассчитать преобразование, но мне пришлось бы использовать что-то вроде Moment.js, и действительно кажется, что у d3 был бы встроенный подход для ...