访问Protovis行中的value属性

Luc*_*uce 5 protovis

我正在使用Protovis Arc布局,我想在符合数据集中定义的'value'属性的节点之间对链接进行着色.我该如何访问它?

数据集定义如下:节点:... {nodeName:"Books"} ...

链接:... {来源:1,目标:4,价值:20} ...

arc.link.add(pv.Line).strokeStyle(function(d)d.value> 10?"#cc0000":"#eeeeee"); - 不起作用

mbo*_*ock 4

属性d指的是节点。在这种情况下,节点上没有value定义属性;链接权重是在links上定义的,这就是属性函数没有执行您期望的操作的原因。

您可以重写属性函数来访问链接(而不是节点)数据。链接数据与链接的父面板关联,并可作为第二个参数使用:

.strokeStyle(function(d, p) p.value > 10 ? "#c00" : "#eee")
Run Code Online (Sandbox Code Playgroud)

布局文档中有更多解释。另请pv.Layout.Network参阅 API 参考:

link标记被添加到子面板,其data属性被定义为布局的links属性。链接的data属性是源节点和目标节点的二元素数组。因此,诸如strokeStyle和 之类的属性fillStyle可以被覆盖,以动态计算节点数据(第一个参数)或链接数据(第二个参数;父面板数据)的属性。