Как сделать xscales и xaxis из этих данных D3 V4

Я работаю на D3 V4.

У меня есть эти данные

 dataset = [{"Time": "33:10"},{"Time": "33:12"}]

Как мне сделать scaleTime из этого?

Также этот подход неверен:

var max = new Date(d3.max(dataset, function(d){return d["Time"]}));
var min = new Date(d3.min(dataset, function(d){return d["Time"]})); 


var xScale = d3.scaleTime()
                       .domain([min,max])
                       .range([padding, width-padding]);     

Так как - он не может создать правильный объект Date из этого формата:

 "33:12"

1 ответ

Решение

Мои комментарии в строке:

Для D3 V3 разбор времени

 dataset = [{"Time": "33:10"},{"Time": "33:12"}]

//First convert your data to date object like this:
var myParser  = d3.time.format("%M:%S");
//run for loop and use parser to parse  the date.
dataset.forEach(function(d){ 
    d.Time = myParser.parse(d.Time);//now its a dateObject
})
//Now get your max and min from the date Object
var max = new Date(d3.max(dataset, function(d){return d["Time"]}));
var min = new Date(d3.min(dataset, function(d){return d["Time"]})); 


var xScale = d3.scaleTime()
                       .domain([min,max])
                       .range([padding, width-padding]);

Для D3 V4 разбор времени

 dataset = [{"Time": "33:10"},{"Time": "33:12"}]

//First convert your data to date object like this:
var myParser  = d3.timeParse("%M:%S");
//run for loop and use parser to parse  the date.
console.log(myParser)
dataset.forEach(function(d){ 
    d.Time = myParser(d.Time);//now its a dateObject
})
//Now get your max and min from the date Object
var max = new Date(d3.max(dataset, function(d){return d["Time"]}));
var min = new Date(d3.min(dataset, function(d){return d["Time"]})); 
Другие вопросы по тегам