2
我基礎上,D3分層酒吧例如建立一個演示工具: https://github.com/devsar/d3talk/blob/master/hierarchical-bar.htmlD3排序分級酒吧的名稱,而不是價值
什麼將增加一個選項按名稱排序的層次結構,而不是最好的辦法的價值?
我基礎上,D3分層酒吧例如建立一個演示工具: https://github.com/devsar/d3talk/blob/master/hierarchical-bar.htmlD3排序分級酒吧的名稱,而不是價值
什麼將增加一個選項按名稱排序的層次結構,而不是最好的辦法的價值?
默認情況下,分區佈局按其相關數值進行排序,但您可以通過調用sort
來設置自己的比較器,該函數需要具有兩個參數的函數進行比較。
要按名稱的酒吧進行排序,只需要改變這些行
https://github.com/devsar/d3talk/blob/master/hierarchical-bar.html#L48-L49
這個
var hierarchy = d3.layout.partition()
.value(function(d) { return d.size; })
.sort(function(a, b){
return a.name.toLowerCase() > b.name.toLowerCase();
});
如果要反轉排序順序,只返回相反
return a.name.toLowerCase() < b.name.toLowerCase();
編輯:
看來當擴展查詢欄時,有些名稱未正確排序。更改比較器的返回值可將其修復(Chrome)
return a.name.toUpperCase().localeCompare(b.name.toUpperCase());
謝謝!這是一個非常迅速的答覆。似乎也完美地工作:)我也發現使用layout.tree而不是layout.partition會有訣竅嗎? – Autio