Вам потребуется измерение перекрестного фильтра для каждого измерения, которое вы хотите отфильтровать.
Таблица данных обычно использует свое измерение только для извлечения данных; в него не встроена никакая фильтрация.
Вместо фильтрации по таблице вы можете go прямо к измерению - для этой диаграммы нет никакой разницы. (Вам нужно использовать .filter()
диаграммы только тогда, когда он реализует пользовательский интерфейс выбора / фильтрации.)
Конечно, размеры должны соответствовать тому, что вы фильтруете:
const cidDimension = cf.dimension(d => d.cid),
dateDimension = cf.dimension(d => d.date);
table.selectAll('td.dc-table-column._1')
.on('click',function(d){
console.log("select:",d);
cidDimension.filter(d.cid)
dc.redrawAll();
})
table.selectAll('td.dc-table-column._2')
.on('click',function(d){
dateDimension.filter(d.date)
dc.redrawAll();
})
A ссылка сброса для одного из этих измерений должна вызывать
cidDimension.filter(null);
или
dateDimension.filter(null);
Если у вас есть ссылка «сбросить все», вы можете либо добавить эти коды к ней, либо переопределить таблицу filterAll
:
table.filterAll = () => {
table.dimension().filter(null);
cidDimension.filter(null);
dateDimension.filter(null);
};