Диаграмма Санки в 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.

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

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

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

Другие вопросы по тегам