D3 Форматирование временного анализа

#javascript #d3.js

Вопрос:

работал над заданием D3, и анализ времени действительно не работает для меня.

Формат данных Console.log без анализа времени

прикрепленное изображение-это данные даты csv, который я использую (загружено d3.dsv), и я использовал var parseTime = d3.timeParse("%m-%d-%Y") его в попытке загрузить, но он всегда возвращается null . Я также пытался (%e-%d-%Y) варьировать, но безрезультатно. Интересно то, что первый формат работал вчера, а теперь он дал ноль, когда я попытался продолжить свою работу сегодня. Любая помощь будет признательна.

Ответ №1:

Поскольку вы не предоставили эти данные, я предположил, что данные и приведенный ниже код работают.

Одна вещь, на которую следует обратить внимание, — это то, что в ваших данных есть косая черта ( / ), разделяющая день, месяц и год. Однако в d3.timeParse , вы используете дефис (-). И то и другое должно совпадать.

 let data = [
  { date: "11/22/2016", cat: 5 },
  { date: "12/22/2016", cat: 4 },
  { date: "01/22/2017", cat: 3 },
  { date: "02/22/2017", cat: 2 },
];

parseTime = d3.timeParse("%m/%d/%Y");

data.forEach((d) => console.log(d.date));

data.forEach((d) => (d.date = parseTime(d.date)));

data.forEach((d) => console.log(d.date));

console.log(data);
 

Выход

введите описание изображения здесь