我正在使用Protovis Arc布局,我想在符合数据集中定义的'value'属性的节点之间对链接进行着色。我该如何访问它?
数据集定义如下: 节点: ... {节点名称: “书”} ...
链接: ... {来源:1,目标:4,价值:20} ...
arc.link.add(pv.Line).strokeStyle(function(d)d.value> 10?“#cc0000”:“#eeeeee”); - 不起作用
答案 0 :(得分:4)
d
属性是指节点。在这种情况下,节点上没有定义value
属性;链接权重是在链接上定义的,这就是属性函数没有达到预期效果的原因。
您可以重写属性函数以访问链接(而不是节点)数据。链接数据与链接的父面板相关联,并且可用作第二个参数:
.strokeStyle(function(d, p) p.value > 10 ? "#c00" : "#eee")
layout documentation中有更多解释。另请参阅pv.Layout.Network
API参考:
link
标记已添加到儿童 面板,其data
属性 定义为布局的links
属性。 链接的data
属性是a 源节点的双元素数组 和目标节点。因此,这些人物strokeStyle
和fillStyle
可以 被重写以计算属性 来自节点数据(第一个) 参数)或链接数据(第二个 参数;父面板数据) 动态。