2015-09-22 1 views
1

Я использую dc.js для прототипа инструмента визуального анализа данных. Что касается функции кисти библиотеки, как я могу указать поведение (A или B) для выбора кисти?Как контролировать эффект транзакции Brush в dc.js?

У меня было два разных поведения с похожим кодом.

В A, выбранные столбцы выделены цветом 'teal', а не выбранные получают серый цвет.

В B, выбранные столбцы также выделены цветом 'teal'. Однако на этот раз он полностью скрывает не выбранные столбцы.

Может кто-нибудь сказать мне, какая функция/функция я должен использовать/изменения для того, чтобы определить A или B?

 s.spendHistChart 
     .width(350).height(200) 
     .colors('teal') 
     .centerBar(true) 
     .dimension(cAmountDim) 
     .group(spendHist) 
     .x(d3.scale.linear().domain([0,100])) 
     .elasticY(true) 

B

  s.chart2 
      .width(990).height(120) 
      .colors('teal') 
      .margins({top: 0, right: 50, bottom: 20, left: 80}) 
      .dimension(s.moveMonths) 
      .group(s.dateDimensionSpend) 
      .centerBar(true) 
      .gap(20) 
      .x(d3.time.scale().domain([new Date(2013, 0, 1), new Date(2015, 11, 31)])) 
      .elasticX(false) 
      .round(d3.time.month.round) 
      .alwaysUseRounding(true) 
      .xUnits(d3.time.months); 

Наверняка я что-то отсутствует. Я надеюсь, что вы можете мне помочь.

ответ

0

A - предполагаемое поведение.

Размеры поперечных фильтров будут учитывать только изменения других размеров.

Фильтрация происходит по размерам, но dc.js считывает данные из групп.

Таким образом, если группа диаграммы не относится к ее размерности, тогда диаграмма будет наблюдать свой собственный фильтр, который обычно не является желаемым поведением.

https://github.com/square/crossfilter/wiki/API-Reference#dimension_group