2015-06-22 53 views
0

我想只繪製dc.js中特定Crossfilter組的top(n)least(n)值,但我不確定如何實現此目的。我已在console.log()中檢查過它,我的組正在根據需要返回值,但我怎樣才能在圖表中繪製這些最高值?在dc.js條形圖上繪製組的最高值

groupForBandwidthConsumed = dimByOrgName.group().reduceSum(function (d) { 
return d.bandwidthConsumed; 
}); 
groupForBandwidthConsumed.top(Infinity).forEach(function (d) { 
console.log(d.key, d.value); 
}); 

,我讀了.data()功能在做這個幫助,但它不與條形圖工作。有人可以解釋我該怎麼做?

這是我正在研究的條形圖的JSFiddle

回答

3

那麼,我可以使用'假組合'的想法自己整理出來。

function getTops(source_group) { 
return { 
    all: function() { 
     return source_group.top(2); 
    } 
}; 
} 
var fakeGroup = getTops(groupForBandwidthConsumed); 

然後修改組屬性爲:.group(fakeGroup) ... JSFiddle

+0

有了這個,我的問題解決了一半。因爲,我必須刪除圖表中的空白塊並按升序排列這些欄。 – Greenhorn

+0

現在條形圖不支持[capping](https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#cap-mixin),所以這個是你能做的最好的。雖然應該有更明顯的語法,但我認爲預過濾是正確的。爲了處理順序排列,還有'.ordering()'。 – Gordon

+0

爲了消除差距,只需不提供序號域。它會自動計算。 – Gordon