У меня есть данные с одним столбцом, который представляет собой список меток для каждой точки данных. Я хотел бы использовать dc.js для создания диаграммы строк, в которой указано количество вхождений каждой метки.Как создать диаграмму строк для многозначных данных в dc.js
данных выглядит следующим образом:
Дата, Этикетки
1/1/2015, "A, B, C"
1/2/2015, "B"
1/3/2015, "с, а"
1/4/2015, "а"
Я хотел бы диаграмму строки, объединяющую их следующим образом:
а: 3
Б: 2
C: 2
Мой код до сих пор:
var labels = ["A", "B", "C"];
var labelBar = dc.rowChart("#label-bar");
d3.csv('data.csv', function (csv) {
var data = crossfilter(csv);
var labelDim = data.dimension(function(d){return d["Labels"];});
var labelGroup = labelDim.group().reduce(
function(p,v) { //add
for (i = 0; i < labels.length; i++) {
if(v["Labels"].indexOf(labels[i]) > -1)
p[labels[i]]++;
}
return p;
},
function(p,v) { //subtract
for (i = 0; i < labels.length; i++) {
if(v["Labels"].indexOf(labels[i]) > -1)
p[labels[i]]--;
}
return p;
},
function(p,v) { //initial
p = {};
for (i = 0; i < labels.length; i++) {
p[labels[i]] = 0;
}
return p;
});
labelBar
.dimension(labelDim)
.group(labelGroup)
.elasticX(true);
});
код только создает строку диаграммы с одной строке для каждой точки данных, а не для каждой метки. Любая помощь будет оценена по достоинству.
Большое спасибо за ваш ответ, Этан! Однако, когда я использую этот код, я получаю сообщение об ошибке в строке 811 dc.js.
ТипError: undefined не является функцией (оценка '_chart.group(). All()') – Eric
Я не могу интерпретировать эту ошибку. Не могли бы вы привести рабочий пример? –
Не беспокойтесь об этой ошибке. Я думаю, что этот подход будет работать, но сначала мне нужно предварительно обработать мои данные. – Eric