javascript - 为 cytoscape.js mapData 设置变量限制

标签 javascript cytoscape.js

快速提问。我正在尝试使用 cytoscape's.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
 })

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

正如 @dandavis 所建议的,这可能是一个插件。所以我尝试添加将最大值和最小值添加到每个边缘 json 定义中。这样做是因为,mapData 函数可能假设每当使用“变量”时,它们都会存储在适当选择器的定义中。

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

有什么想法吗?

非常感谢!

最佳答案

您不能期望在 JS 中以字符串形式计算变量(除非明确使用即将推出的 ES6 功能)。所以,

.selector('边缘') .css({ 'line-color': 'mapData(相似度,最小,最大,蓝色,红色)' “宽度”:2, “不透明度”:0.8 })

变成了

.selector('边缘') .css({ 'line-color': 'mapData(相似度,' + min + ', ' + max + ', 蓝色, 红色)' “宽度”:2, “不透明度”:0.8 })

等等。

关于javascript - 为 cytoscape.js mapData 设置变量限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388619/

相关文章:

javascript - 使用 dagre 布局调整 cytoscape.js 中的形状大小

javascript - cytoscape js 的可缩放背景

javascript - Cytoscape.js - 如何为复合节点使用一种布局,为复合节点的子节点使用另一种布局

javascript - 细胞景观 : Add element in setTimeout doesn't get rendered

javascript - 鼠标滚轮和过渡不兼容

javascript - 如何将日期和时间输入的值合并到一个日期对象?

javascript - Jquery淡入淡出循环

javascript - 基本的 javascript 按钮功能(隐藏/显示内容)

javascript - 未捕获的语法错误 : Unexpected token < on each js file that invoked in the index html

javascript - 当图表准备好/渲染时如何隐藏 cytoscape 节点?