为cytoscape.js mapData设置变量限制

时间:2015-02-07 23:13:40

标签: javascript cytoscape.js

快速提问。我正在尝试使用cytoscape的.js mapData线性映射器来设置小图中边缘的颜色。 然而,有一个小问题。以下示例顺利运行。

.selector('edge')
    .css({
       'line-color': 'mapData(similarity,1.8,3.78, blue, red)'
       'width': 2,
       'opacity': 0.8
  })

然而,只要我更换固定边界,我就会有点腌渍。

.selector('edge')
    .css({
        'line-color': 'mapData(similarity,min, max, blue, red)',
        'width': 2,
        'opacity': 0.8
 })

彩色边缘消失,全部变灰。 min和max变量是先设置的,我可以验证这一点,因为它们在创建图形之前用于计算其他内容。我查看了文档,但找不到有关此问题的任何内容。

正如@dandavis所说,它可能是一个插件。所以我尝试添加为每个边缘json定义添加max和min。这样做可以认为mapData函数可能假定每当使用“变量”时,它们都存储在相应选择器的定义中。

id: "133700_307800"
max_sim: 3.57829530512
min_sim: 1.9655114484
similarity: 3.57829530512
source: "133700"
target: "307800"

有什么想法吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您不能指望在JS中的字符串中评估变量(除非显式使用即将推出的ES6功能)。所以,

.selector('edge') .css({ 'line-color': 'mapData(similarity,min, max, blue, red)' 'width': 2, 'opacity': 0.8 })

变为

.selector('edge') .css({ 'line-color': 'mapData(similarity,' + min + ', ' + max + ', blue, red)' 'width': 2, 'opacity': 0.8 })

等等。

答案 1 :(得分:0)

我试图为mapData函数设置变量边界无济于事。我最终做的是缩放0到1之间的值,并修复javascript中的下边界和上边界。谢谢!