Javascript 如何在渲染之前操作cytoscape.js图形数据
我有相对大量的图形数据(超过1000个节点,超过2000条边)。Cytoscape.js无法呈现如此大量的数据,因此我决定制作一些交互式图形探索。我想从图根开始(它是DAG),用户可以在单击节点后浏览它们 我知道我可以在cytoscape.js之外完成这项工作,但我想知道我是否可以创建一个节点/边缘集合,我将对其进行操作(删除除根节点及其邻居之外的所有节点),然后将其用作数据源(获取节点的子节点)。Cytoscape使图形处理变得非常简单,不需要重新发明轮子就好了Javascript 如何在渲染之前操作cytoscape.js图形数据,javascript,graph,cytoscape.js,Javascript,Graph,Cytoscape.js,我有相对大量的图形数据(超过1000个节点,超过2000条边)。Cytoscape.js无法呈现如此大量的数据,因此我决定制作一些交互式图形探索。我想从图根开始(它是DAG),用户可以在单击节点后浏览它们 我知道我可以在cytoscape.js之外完成这项工作,但我想知道我是否可以创建一个节点/边缘集合,我将对其进行操作(删除除根节点及其邻居之外的所有节点),然后将其用作数据源(获取节点的子节点)。Cytoscape使图形处理变得非常简单,不需要重新发明轮子就好了 我尝试根据我输入到图形的JSO
我尝试根据我输入到图形的JSON数据创建cy.collection,但它似乎不接受与cy.load相同的数据格式。我可以通过创建两个cytoscape对象来解决这个问题。我正在将所有图形数据加载到我调用的变量
allcy
:
var allcy = cytoscape({
headless: true,
});
请注意,它是无头的,因此不会尝试以任何方式渲染节点
然后我创建正常的“工作”cy
var
var cy = cytoscape({
container: document.getElementById('thegraph'),
});
我将所有数据加载到allcy
allcy.load(response); //response is json graph data I got from xmlhttp request
我将根及其邻域添加到cy
并重新加载布局
cy.add(allcy.nodes().roots().closedNeighborhood());
cy.layout(layoutSettings);
瞧!在渲染的
cy
图形中,我只有根节点。现在,我需要根据需要从allcy
添加其他节点,但我想我会设法做到这一点。希望它对某人有用。我可以通过创建两个cytoscape对象来解决这个问题。我正在将所有图形数据加载到我调用的变量allcy
:
var allcy = cytoscape({
headless: true,
});
请注意,它是无头的,因此不会尝试以任何方式渲染节点
然后我创建正常的“工作”cy
var
var cy = cytoscape({
container: document.getElementById('thegraph'),
});
我将所有数据加载到allcy
allcy.load(response); //response is json graph data I got from xmlhttp request
我将根及其邻域添加到cy
并重新加载布局
cy.add(allcy.nodes().roots().closedNeighborhood());
cy.layout(layoutSettings);
瞧!在渲染的
cy
图形中,我只有根节点。现在,我需要根据需要从allcy
添加其他节点,但我想我会设法做到这一点。希望它对某人有用。我可以通过创建两个cytoscape对象来解决这个问题。我正在将所有图形数据加载到我调用的变量allcy
:
var allcy = cytoscape({
headless: true,
});
请注意,它是无头的,因此不会尝试以任何方式渲染节点
然后我创建正常的“工作”cy
var
var cy = cytoscape({
container: document.getElementById('thegraph'),
});
我将所有数据加载到allcy
allcy.load(response); //response is json graph data I got from xmlhttp request
我将根及其邻域添加到cy
并重新加载布局
cy.add(allcy.nodes().roots().closedNeighborhood());
cy.layout(layoutSettings);
瞧!在渲染的
cy
图形中,我只有根节点。现在,我需要根据需要从allcy
添加其他节点,但我想我会设法做到这一点。希望它对某人有用。我可以通过创建两个cytoscape对象来解决这个问题。我正在将所有图形数据加载到我调用的变量allcy
:
var allcy = cytoscape({
headless: true,
});
请注意,它是无头的,因此不会尝试以任何方式渲染节点
然后我创建正常的“工作”cy
var
var cy = cytoscape({
container: document.getElementById('thegraph'),
});
我将所有数据加载到allcy
allcy.load(response); //response is json graph data I got from xmlhttp request
我将根及其邻域添加到cy
并重新加载布局
cy.add(allcy.nodes().roots().closedNeighborhood());
cy.layout(layoutSettings);
瞧!在渲染的cy
图形中,我只有根节点。现在,我需要根据需要从allcy
添加其他节点,但我想我会设法做到这一点。希望它对某人有用