访问Protovis行中的value属性

时间:2010-06-13 10:47:12

标签: protovis

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

数据集定义如下: 节点: ... {节点名称: “书”} ...

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

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

1 个答案:

答案 0 :(得分:4)

d属性是指节点。在这种情况下,节点上没有定义value属性;链接权重是在链接上定义的,这就是属性函数没有达到预期效果的原因。

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

.strokeStyle(function(d, p) p.value > 10 ? "#c00" : "#eee")

layout documentation中有更多解释。另请参阅pv.Layout.Network API参考:

  

link标记已添加到儿童   面板,其data属性   定义为布局的links属性。   链接的data属性是a   源节点的双元素数组   和目标节点。因此,这些人物   strokeStylefillStyle可以   被重写以计算属性   来自节点数据(第一个)   参数)或链接数据(第二个   参数;父面板数据)   动态。