Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过cytoscape.js中的cy.add()添加多条边后使用mapData()_Javascript_Html_Css_Web_Cytoscape.js - Fatal编程技术网

Javascript 通过cytoscape.js中的cy.add()添加多条边后使用mapData()

Javascript 通过cytoscape.js中的cy.add()添加多条边后使用mapData(),javascript,html,css,web,cytoscape.js,Javascript,Html,Css,Web,Cytoscape.js,我正在使用cytoscape.js将原始txt数据转换为cytoscape.js图形。 为此,我首先用以下公式绘制图表: var cy=cytoscape({…}) 没有任何元素。然后从txt文件中读取节点和边后,我为节点添加了以下内容: cy.add({ data: {id: keys[i]} } ); 对于边,这是: cy.add({ data: { id: 'edge'

我正在使用cytoscape.js将原始txt数据转换为cytoscape.js图形。 为此,我首先用以下公式绘制图表:
var cy=cytoscape({…})
没有任何元素。然后从txt文件中读取节点和边后,我为节点添加了以下内容:

        cy.add({
            data: {id: keys[i]}
        }
    );
对于边,这是:

        cy.add({
        data: {
            id: 'edge' + i,
            source: edges[i].source,
            target: edges[i].target,
            label: edges[i].weight
        }

    });
然后我想应用
“宽度”:“mapData(weight,01100,1,6)”
。我该怎么做? 我试过这些: 1) 在边选择器中使用mapData()生成cy变量。(它不适用于添加的边和节点)

2) 制作每条边后,对每条边使用mapData():
cy.$('#edge'+i).style('width','mapData(weight,01100,1,6)')

3) 生成所有节点和边后使用mapData():
cy.elements('edge')。style('line-color','mapData(权重,1,6,蓝色,绿色)')

它们都不管用

可能是这样的:

var cy = window.cy = cytoscape({
    container: document.getElementById('cy'),
    style: [
      {
        selector: 'node',
        style: {
          'label': 'data(name)',
          'width': 'mapData(weight, 0, 100, 1, 6)',
          'height': 'mapData(weight, 0, 100, 1, 6)',
        }
      }
    ]
  });

cy.add([
  { group: "nodes", data: { id: "n0", name: "node0", weight: "x"} },
  { group: "nodes", data: { id: "n1", name: "node1", weight: "y"} },
  { group: "edges", data: { id: "e0", source: "n0", target: "n1" } }
]);

cy.ready(function ()  {            // Wait for nodes to be added
    cy.layout(                     // Call layout
        name: 'yourDecision'
    ).run();
});

我在初始化时定义了cytoscape实例,在那里我定义了节点/边/的样式

谢谢你的回答。你能发布完整的代码示例吗?谢谢你编辑你的答案。两个问题:1)应用布局后需要运行()和2)它只将节点的所有宽度和高度替换为1。它可以工作!!我是在增加绳子的重量!!这就是问题所在!很高兴我能帮助解决与OP+相同的问题,mapData字符串中不允许有空格,也就是说,对于我的情况,唯一有效的解决方案是“mapData(权重,01100,1,6)”