如何使用 API(或另一个图表的元素)的输出创建新图表?
How can I create a new graph using output of an API (or the elements of another graph)?
我有一个图表,我使用 Kruskal API 创建了一个 MST。我想可视化 MST,但我没有看到任何立即明显的方法。
let originalGraph = cytoscape({
...
elements: jsonData
});
let mst = originalGraph.elements().kruskal(e => e.data().weight);
let newGraph = cytoscape({
...
elements: ???
});
我如何从 MST(或任何其他图表,如 originalGraph
)中提取元素,以便我可以将其传递到新的 cytoscape 实例中以进行可视化?目前我的解决方法是:
let newGraph = cytoscape({
...
elements: mst.map(e => { return { position: e.position(), data: e.data() } })
});
但我忍不住觉得我错过了一个更简单的方法。在一个可能相关的注释中,我看到文档说 .data()
将仅引用集合的第一个元素,但是有没有办法以与传入数据相同的方式获取对数据的引用(比如jsonData
以上)而不求助于 .map(...)
?
如果答案显而易见,我深表歉意;我才刚刚开始使用 Cytoscape.js.
我再次更详细地浏览了文档,我明白了。 jsonData
的格式在文档中字面上称为 "plain JSON representation" 并且可以通过 .jsons()
函数获取,并传递给新图形。
我有一个图表,我使用 Kruskal API 创建了一个 MST。我想可视化 MST,但我没有看到任何立即明显的方法。
let originalGraph = cytoscape({
...
elements: jsonData
});
let mst = originalGraph.elements().kruskal(e => e.data().weight);
let newGraph = cytoscape({
...
elements: ???
});
我如何从 MST(或任何其他图表,如 originalGraph
)中提取元素,以便我可以将其传递到新的 cytoscape 实例中以进行可视化?目前我的解决方法是:
let newGraph = cytoscape({
...
elements: mst.map(e => { return { position: e.position(), data: e.data() } })
});
但我忍不住觉得我错过了一个更简单的方法。在一个可能相关的注释中,我看到文档说 .data()
将仅引用集合的第一个元素,但是有没有办法以与传入数据相同的方式获取对数据的引用(比如jsonData
以上)而不求助于 .map(...)
?
如果答案显而易见,我深表歉意;我才刚刚开始使用 Cytoscape.js.
我再次更详细地浏览了文档,我明白了。 jsonData
的格式在文档中字面上称为 "plain JSON representation" 并且可以通过 .jsons()
函数获取,并传递给新图形。