Диаграмма Санки в 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
Надеюсь, что это поможет для будущих взглядов.