5

我正在使用 Protovis Arc 布局,我想根据数据集中定义的“值”属性为节点之间的链接着色。我怎样才能访问它?

数据集的定义如下: Nodes: ... {nodeName:"Books"} ...

链接:... {source:1, target:4, value:20} ...

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

4

1 回答 1

4

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

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

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

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

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

于 2010-06-13T17:57:58.037 回答