2017-02-19 4 views
0

Может ли кто-нибудь, пожалуйста, дайте мне знать, как отображать ежемесячные, еженедельные, ежедневные данные от JSON.График отображения на прошлой неделе, в прошлом месяце и в прошлом году Данные JSON с использованием D3.js

Пример:

  1. Как получить последние 4 недели данные из JSON (ежемесячно)?
  2. Как получить последние 12 месяцев данных от JSON (ежегодно)?
  3. Как получить последние 7 дней данных от JSON (еженедельно)?

JSON Пример:

{"date" : "2016-06-16"} 
... 
... 
{"date" : "2016-05-16"} 
{"date" : "2016-04-16"} 
+0

Не могли бы вы создать plnkr/jsfiddle/gist, чтобы иметь возможность работать с вашим кодом? Я думаю, вам нужно создать объект Date из строки, которую вы имеете, а затем использовать 'd3.nest'. Если объект Date не имеет достаточных функциональных возможностей, рассмотрите возможность использования [moment.js] (https://momentjs.com/) –

+0

Спасибо. https://jsfiddle.net/sjsarama/j8hecu7o/ – Saravana

+0

Пожалуйста, найдите данные json. Мотор-дата.дата "107857", \t \t \t»: JSON: { \t "БК": [ \t \t { \t \t \t \t \t \t "редакция": "83028", \t \t \t "значение" ":" 2016-06-16 ", \t \t \t" location ":" global " \t \t}, \t \t {\t \t \t \t \t \t "пересмотра": "82923", \t \t \t "значение": "107163", \t \t \t "Дата": "2016-06-15", \t \t \t "место": "глобальное" \t \t}, \t \t { \t \t \t \t \t \t "редакция": "82772", \t \t \t "значение": "107123", \t \t \t "Дата": "2016-06-14", \t \t \t "место": "global" \t \t} ] } – Saravana

ответ

0

Я переместил свой код plnkr (я не фанат jsfiddle; plnkr позволяет создавать файлы, как вы хотите

Во-первых, я. отметил, что вы используете d3 v3, я бы рекомендовал обновить до версии v4, чтобы использовать последние функциональные возможности и улучшения (но это не по теме).

Во-вторых, я добавил пару линий (102 до 107) для создания вложенности данных по месяцам (в качестве примера):

var byMonth = d3.nest() 
    .key(function(d){ 
     return d.month; 
    }) 
    .entries(data["BC"]) 
console.log(byMonth); 

Теперь объект byMonth имеет key свойство, соответствующее числу месяца вы уже переведенный, и values свойство, содержащее все значения в указанном месяце. Теперь вы можете создавать/обновлять диапазон шкалы, используя что-то вроде scale.range(byMonth.map(function(d){return d.key;}), использовать эту шкалу для оси и соответствующим образом строить ваши данные. Та же техника может быть применена к свойствам день или год.

+0

Большое спасибо Hugues. Я проверю. – Saravana

+0

В любое время! Дайте мне знать, как это сработало для вас! –

Смежные вопросы