2013-10-21 72 views
1

在這種情況下,我使用JIT Hypertree。我將區分節點的顏色與其他節點的顏色,以便樹上的每個節點都有自己的顏色。無論如何要改變個別的顏色,以便它會不同於其他節點?Javascript的Infovis更改個人節點顏色

我只是設法改變所有節點的顏色,但不是個別的。

Node: { 
    dim: 9, 
    color: "#009933" 
}, 

回答

1

你必須在重寫財產上的節點有設置爲true。

Node: { 
    dim: 9, 
    overridable: true 
}, 

然後,在裝入數據和繪圖之前,遍歷節點並使用使用setData設置單獨的顏色。下面是一個使用隨機顏色an example,但你也可以插入顏色到您的JSON數據,並從那裏拉:

ht.graph.eachNode(function(node) { 
    node.setData('color', "hsl("+Math.random()*360+",100%,50%)"); 
}); 

現在,無恥插頭:我寫a library生成基於上說,標識的顏色。因此,如果您不想手工挑選顏色,並且希望顏色與數據保持一致關係,則會有所幫助。 Here's the example使用。

ht.graph.eachNode(function(node) { 
    node.setData('color', $.fn.autumn.getColor(node.id)); 
}); 
+1

謝謝我已經嘗試使用你的庫,它是有益的庫我想。但更清楚的是,我希望通過深度是奇數還是偶數來區分節點。要做到這一點,我必須對其級別進行迭代。所以我使用$ jit.json.eachLevel(json,0,3,function(node,depth)而不是ht.graph.eachNode(function(node))。但是,我沒有定義setData方法。 –