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

#d3.js

#d3.js

Вопрос:

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

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

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

Как мне сделать масштабирование из этого?

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

 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"]})); 
  

Комментарии:

1. Спасибо! Я сделал свое собственное решение: просто добавил некоторую постоянную строку к строке даты: new Date(«Thu, 01 Jan 1970 00:» string); — и теперь я понимаю, что это было действительно некрасиво.

2. Как вы анализируете строку в объект date в версии 4?

3. Отредактировал мой ответ для V4.