Диаграмма Санки d3.js - использование массива из нескольких монет в качестве узлов

Я разрабатывал приложение, используя диаграмму Санки Google Chart, и успешно создал образец диаграммы Санки в веб-приложении. Но меня не устраивает макет, и я ищу в Интернете и наткнулся на плагин d3.js для Sankey Diagram. Выглядит очень красиво, и я протестировал пример кода приложения из здесь.

В коде он вызывает внешний файл JSON, чтобы использовать его в качестве узлов:

d3.json("sankey-formatted.json", function(error, graph) { ... });

В первом разработанном мной приложении я получаю узлы из многомерного массива следующим образом:

//rows is the multidimensional array
//i got this from the example on Google Charts
data.addRows(rows);  

Многомерный массив — это набор объектов, полученных в результате вызова AJAX.

Как я могу использовать этот массив для диаграммы Санки? Могу ли я сделать это без вызова внешнего файла?


person DustineTheGreat    schedule 29.08.2014    source источник
comment
Итак, у вас уже есть данные, и вы просто хотите передать их плагину, не выполняя d3.json()?   -  person Oleg    schedule 29.08.2014


Ответы (1)


Мне удалось ответить на мой собственный вопрос (глупый я). Я опубликую это для будущего использования.

Если у вас уже есть переменная, содержащая данные (например, массив), используйте ее напрямую.

В моем случае исходный код:

d3.json("sankey-formatted.json", function(error, graph) {

  //sankey is an object, as well as the graph
  sankey
      .nodes(graph.nodes)
      .links(graph.links)
      .layout(32);

 // ... other codes
});

Измените его как

// this time, nodes and links are the variables
// that holds the arrays to be used by the chart
// remove the encapsulation of d3.json
sankey
    .nodes(nodes)
    .links(links)
    .layout(32);

// ... other codes

Надеюсь, это поможет для будущих просмотров.

person DustineTheGreat    schedule 29.08.2014