2015-10-13 53 views
0

當我在crossfilter中有多個數據集時遇到問題。 我爲每個數據集創建一個交叉過濾器。 我想在餅圖中篩選我的數據,當我在氣泡圖中選擇年份維度時。它們來自不同的數據集,但都有年份欄。dc.js使用來自其他數據集的過濾器

氣泡圖:

var ndx = crossfilter(data); 
var yearDimension = ndx.dimension(function (d) { return d.FiscalYear; }); 
var yearlyPerformanceGroup = yearDimension.group().reduceSum(return d.Value); 

餅圖

var ndxobi = crossfilter(obligation); 
var yearDimension = ndxobi.dimension(function (d) { return d.FiscalYear; }); 
var obligationDimension = ndxobi.dimension(function (d) { return d.Type; }); 
var valueObligationSumGroup = obligationDimension.group().reduceSum(function (d) { return d.Value; }); 

能有一個人告訴我如何選擇氣泡圖的一年,然後把它傳遞給餅圖?

謝謝

回答

0

這是要更好地工作,如果他們使用共同的crossfilter,但你也許可以得到的東西只是聽氣泡圖上filtered事件和過濾餅圖火災時的工作:

bubbleChart.on('filtered', function(chart) { 
    pieChart.filter(null) 
     .filter([chart.filters()]) 
     .redrawGroup(); 
}); 

這消除了餅圖上舊的過濾器,應用新的一個,然後促使所有圖表在餅圖的crossfilter重繪。

文檔:

+0

謝謝戈登。但我的問題是,在餅圖中,我的維度不是Year。但是,它被稱爲義務維度。餅圖顯示了兩種義務的比例。我想在泡泡圖中選擇年份,然後根據我選擇的年份更改Piechart中的比例。我認爲你的方法會過濾年度的餅圖,但是我會根據義務維度對餅圖的價值進行分組。你能告訴我如何解決這個問題嗎? –

+0

好的,那不是你在代碼中顯示的。但我認爲你所需要做的就是在餅圖的crossfilter上創建另一個維度,然後過濾它。如果這仍不是你的意思,請編輯你的問題。 – Gordon

+0

謝謝戈登。我在義務交叉過濾器中使用年份維度在條形圖上創建條形圖和過濾器。然後餅圖自動過濾。但它只能過濾一次。如果我想選擇第二年或第三年,則無法過濾。例如,我首先選擇2011年,如果我想看看2009年,2010年和2011年的三年結果,圖表不能過濾三年。它仍然是2011年的結果。 –

相關問題