2010-06-13 72 views
5

我使用Protovis Arc佈局,並且想根據數據集中定義的'value'屬性爲節點着色鏈接。我怎樣才能訪問它?訪問Protovis行中的值屬性

數據集被定義這樣的: 節點: ... {nodeName的: 「書籍」} ...

鏈接: ... {源:1,目標:4,值:20} ...

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

回答

4

d屬性指節點。在這種情況下,在節點上沒有定義value屬性;鏈接權重在鏈接上定義,這就是爲什麼屬性函數沒有達到您期望的。

你可以重寫你的屬性函數來訪問鏈接(而不是節點)數據。鏈接數據與鏈接的父面板相關,並且可以作爲第二個參數:

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

還有更多的在layout documentation的解釋。而且也看到了pv.Layout.Network API參考:

link馬克被添加到孩子 面板,其data屬性 定義爲佈局的links財產。 鏈接的data屬性然後是源節點 和目標節點的 雙元素陣列。因此,例如poperties如 和strokeStyle可以fillStyle 被覆蓋,以計算從任一節點數據(第一 參數)或鏈路數據屬性 (第二 參數;父面板數據) 動態。