У меня есть набор данных, где некоторые из значений полей являются массивами, и я хотел бы использовать crossfilter и d3.js или dc.js для отображения гистограммы того, сколько раз каждое из этих значений присутствовало в наборе данных.
Вот пример:
var data = [
{"key":"KEY-1","tags":["tag1", "tag2"]},
{"key":"KEY-2","tags":["tag2"]},
{"key":"KEY-3","tags":["tag3", "tag1"]}];
var cf = crossfilter(data);
var tags = cf.dimension(function(d){ return d.tags;});
var tagsGroup = tags.group();
dc.rowChart("#chart")
.renderLabel(true)
.dimension(tags)
.group(tagsGroup)
.xAxis().ticks(3);
dc.renderAll();
И JSFiddle http://jsfiddle.net/uhXf5/2/
Когда я запускаю этот код, он создает граф следующим образом:
Но я хочу что-то вроде этого:
Чтобы сделать вещи еще более сложными, было бы замечательно иметь возможность щелкнуть по любой из строк и фильтровать набор данных с помощью тега, который был нажат.
У кого-нибудь есть идеи, как это достичь?
Спасибо, Костя