1

我想使用 CytoscapeWeb 2.0 的离散映射器(即基于 jQuery 的 CytoscapeWeb),但需要一些示例代码来说明我必须做什么。

我已经尝试过从基于 Flash 的 CytoscapeWeb 中获取的一些代码并尝试过

var entityColorMapper = {
    attrName: "etype",
    entries: [ { attrValue: "protein", value: "#ff0000" },
               { attrValue: "compound", value: "#00ff00" },
               { attrValue: "group", value: "#0000ff" } 
             ]
};

然后在我的“风格”结构中

    "node.E": {
        fillColor: {
            discreteMapper: entityColorMapper
        }
    }

但这似乎不起作用。

4

1 回答 1

1

在 Cytoscape Web 2 中有所不同: https ://github.com/cytoscape/cytoscapeweb/wiki/StyleObject

  // example discrete mapper
  fillColor: {
    defaultValue: "grey",
    discreteMapper: {
      attr: "type", // field in ele.data() to map to
      mapped: {
        "foo": "red", // field value : visual property value
        "bar": "blue"
      }
    }
  }

您实际上并不需要使用离散映射器,因为您可以在您的风格中使用选择器:

"node[type='foo']": { fillColor: "red", borderColor: "pink" },
"node[type='bar']": { fillColor: "blue" }

最好使用第二种方法,因为您可以[type='blah']一次将多个视觉属性的样式分开(例如borderColor),就像 CSS 一样。

请记住:确保在 Cytoscape Web 2 期间始终使用最新的预发布版本,直到发布第一个正式版本。 https://github.com/cytoscape/cytoscapeweb/downloads

于 2012-05-02T18:40:59.587 回答