#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.