2015-01-19 4 views
0

Я хотел бы создать простую круговую диаграмму в d3.js. Ответ на запрос, что я работаю с выглядит следующим образом:d3.js диаграмма от объекта json

{"record":[{"status":"request"},{"status":"requirements"},{"status":"request"}]}; 

Из того, что я видел в примерах, мне нужно, чтобы преобразовать этот объект в этом:

[{"label":"Request", "value":2}, {"label":"Requirements", "value":1}]; 

Я счастлив используйте функции d3 или подчеркивание или прямой javascript, чтобы выполнить это, я просто не смог взломать его самостоятельно. Любая помощь приветствуется!

ответ

2

Вы можете использовать d3.nest() переформатировать данные:

var data = d3.nest() 
    .key(function(d){ return d.status; }) 
    .rollup(function(leaves){ return leaves.length; }) 
    .entries(input.record) 
    .map(function(d){ return {label: d.key, value: d.values}; }); 
+0

Спасибо за ответ mdml! Таким образом, используя: var response = {"record": [{"status": "request"}, {"status": "requirements"}, {"status": "request"}]}; вар данные = d3.nest() \t .key (функция (г) {возвращение d.status;}) \t .rollup (функция (листья) {возвращение leaves.length;}) \t .entries (ответ. запись) \t .map (функция (d) {return {label: d.key, значение: d.values};}); console.log (данные); Я получаю сообщение об ошибке: «Неожиданное значение переводит (NaN, NaN) атрибут преобразования синтаксиса» – user1911141

+0

Рад помочь. Поэтому мой ответ правильно переформатировал ваши данные, но есть проблема с использованием этих данных для вашего сюжета? Я не могу сказать, что происходит, не видя ваш код. Возможно, вы можете отправить еще один вопрос с кодом для вашего сюжета. – mdml

+0

Нет, вы прибили его. Глупые ошибки библиотеки с моей стороны. Благодаря!! – user1911141

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