SigmaJS-“未定义sigma”错误

时间:2018-08-03 12:14:48

标签: javascript sigma.js

好的,我承认对此感到很傻。

我只是第一次尝试SigmaJS,我只是想尝试一下该库以了解我能做什么。我只是尝试遵循sigmajs.org上“教程”下的基本示例。

但是,我不断收到错误消息,“未定义sigma”。知道为什么会这样吗?我有我的JS小提琴here

// Add a method to the graph model that returns an
// object with every neighbors of a node inside:
sigma.classes.graph.addMethod('neighbors', function(nodeId) {
  var k,
      neighbors = {},
      index = this.allNeighborsIndex[nodeId] || {};

  for (k in index)
    neighbors[k] = this.nodesIndex[k];

  return neighbors;
});

sigma.parsers.gexf(
  'les-miserables.gexf',
  {
    container: 'sigma-container'
  },
  function(s) {
    // We first need to save the original colors of our
    // nodes and edges, like this:
    s.graph.nodes().forEach(function(n) {
      n.originalColor = n.color;
    });
    s.graph.edges().forEach(function(e) {
      e.originalColor = e.color;
    });

    // When a node is clicked, we check for each node
    // if it is a neighbor of the clicked one. If not,
    // we set its color as grey, and else, it takes its
    // original color.
    // We do the same for the edges, and we only keep
    // edges that have both extremities colored.
    s.bind('clickNode', function(e) {
      var nodeId = e.data.node.id,
          toKeep = s.graph.neighbors(nodeId);
      toKeep[nodeId] = e.data.node;

      s.graph.nodes().forEach(function(n) {
        if (toKeep[n.id])
          n.color = n.originalColor;
        else
          n.color = '#eee';
      });

      s.graph.edges().forEach(function(e) {
        if (toKeep[e.source] && toKeep[e.target])
          e.color = e.originalColor;
        else
          e.color = '#eee';
      });

      // Since the data has been modified, we need to
      // call the refresh method to make the colors
      // update effective.
      s.refresh();
    });

    // When the stage is clicked, we just color each
    // node and edge with its original color.
    s.bind('clickStage', function(e) {
      s.graph.nodes().forEach(function(n) {
        n.color = n.originalColor;
      });

      s.graph.edges().forEach(function(e) {
        e.color = e.originalColor;
      });

      // Same as in the previous event:
      s.refresh();
    });
  }
);

先谢谢您!

1 个答案:

答案 0 :(得分:0)

好的,这是两件事:

  1. 由于某些原因,我的消息来源未被认可。 (未定义sigma错误)
  2. Firefox可以轻松显示图形-Chrome可以。我需要研究为什么Chrome无法与SigmaJS配合使用。

更新的小提琴:https://jsfiddle.net/KateJean/068uf9Ly/ **在Firefox中打开。

    sigma.parsers.gexf(
  'https://raw.githubusercontent.com/jacomyal/sigmajs.org/master/assets/data/les-miserables.gexf',
  {
    container: 'sigma-container'
  },