Порядковые шкалы, определенные выборки, графики постоянного тока
Я строю базовую гистограмму с порядковой осью X и метрикой по оси Y. Теперь, это хорошо работает, используя этот пост
Однако теперь я хочу выбрать только конкретные точки данных для отображения. Пример: если моя ординальная ось X имеет - a, b & c. Но мне нужно показать только - B & C.
Выпуск:
Когда я добавляю только b & c в домен, используя следующий код, даже a отображается в фоновом режиме.
Код:
.x(d3.scale.ordinal().domain(["b", "c"])) // Need the empty val to offset the first value
.xUnits(dc.units.ordinal)
Я сделал скрипку, чтобы показать проблему здесь
Еще одно место для большей наглядности - ссылка здесь (посмотрите на порядковую гистограмму внизу - начиная с Калифорнии, Лондон исключен, но все еще на заднем плане)
Есть ли какое-то решение для этого / или какое-нибудь решение? Любой подход / предложения будут высоко оценены
1 ответ
Я думаю, что об этом уже спрашивали, но я не смог найти его в быстром поиске.
Это та вещь, для которой вы хотите использовать поддельную группу, потому что она меняет форму данных. Группа кроссфильтров будет вести себя как обычно, но будет промежуточный объект, который будет перехватывать результаты и удалять определенные ячейки:
function remove_bins(source_group) { // (source_group, bins...}
var bins = Array.prototype.slice.call(arguments, 1);
return {
all:function () {
return source_group.all().filter(function(d) {
return bins.indexOf(d.key) === -1;
});
}
};
}
Добавьте его к вашему обычному кроссфильтру, например так:
var ndx = crossfilter(...)
var dim = ndx.dimension(...)
var group = dim.group(...) ...
var filtered_group = remove_bins(group, 'a');
chart.dimension(dim)
.group(filtered_group)
...