Javascript 如何在渲染之前操作cytoscape.js图形数据

Javascript 如何在渲染之前操作cytoscape.js图形数据,javascript,graph,cytoscape.js,Javascript,Graph,Cytoscape.js,我有相对大量的图形数据(超过1000个节点,超过2000条边)。Cytoscape.js无法呈现如此大量的数据,因此我决定制作一些交互式图形探索。我想从图根开始(它是DAG),用户可以在单击节点后浏览它们 我知道我可以在cytoscape.js之外完成这项工作,但我想知道我是否可以创建一个节点/边缘集合,我将对其进行操作(删除除根节点及其邻居之外的所有节点),然后将其用作数据源(获取节点的子节点)。Cytoscape使图形处理变得非常简单,不需要重新发明轮子就好了 我尝试根据我输入到图形的JSO

我有相对大量的图形数据(超过1000个节点,超过2000条边)。Cytoscape.js无法呈现如此大量的数据,因此我决定制作一些交互式图形探索。我想从图根开始(它是DAG),用户可以在单击节点后浏览它们

我知道我可以在cytoscape.js之外完成这项工作,但我想知道我是否可以创建一个节点/边缘集合,我将对其进行操作(删除除根节点及其邻居之外的所有节点),然后将其用作数据源(获取节点的子节点)。Cytoscape使图形处理变得非常简单,不需要重新发明轮子就好了


我尝试根据我输入到图形的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
添加其他节点,但我想我会设法做到这一点。希望它对某人有用