Я хотел бы сделать два графика, используя dc.js. Мои данные относятся к нескольким сеансам (каждый обычно происходит в отдельный день). Каждый сеанс имеет несколько упражнений, которые оцениваются по различным параметрам.построение нескольких измерений в DC для D3
Графики:
- Выбор типа сюжета. Я планирую все сеансы (по времени или, возможно, идентификатор сеанса), а затем использовать фильтр, чтобы пользователь мог выбрать диапазон.
- Агрегатный участок. Это отображает среднее значение всех данных параметров упражнений по выбранным сеансам.
Идея заключается в том, что пользователь может изменять выбранный диапазон и искать тенденции в изменении производительности.
Мои данные в формате JSON выглядит следующим образом:
"Data": [
{
"excerciseId": 1,
"startTime": "01-Jan-2013 10:10:00",
"stopTime": "01-Jan-2013 10:13:00",
"numberReps": 11,
"power": 6.3345681,
"control": 4.180355137,
"stability": 0.4893870991,
"rate": 4.375298413,
"session": 1,
},
{
"excersiseId": 2,
"startTime": "01-Jan-2013 10:30:00",
"stopTime": "01-Jan-2013 10:33:00",
"numberReps": 12,
"power": 5.118183368,
"control": 9.957258023,
"stability": 9.752985592,
"rate": 3.202822695,
"session": 1,
},
{
"excersiseId": 1,
"startTime": "02-Jan-2013 10:30:00",
"stopTime": "02-Jan-2013 10:33:00",
"numberReps": 4,
"power": 5.597765864,
"control": 4.512012222,
"stability": 8.563329462,
"rate": 7.23380183,
"session": 2,
},
...
...
...]
Однако я реорганизовал его в плоскую структуру, чтобы хорошо играть с crossfilter.
Я создал группу и размеры, как это:
var sessionDimension = ndx.dimension(function(d) { return d.session; });
var numRepsBySession = sessionDimension.group().reduceSum(function(d) { return d.numReps; });
и у меня есть хорошая гистограмма так:
var sessionsByDateBarChart = dc.barChart("#sessions-By-Date-Bar-Chart");
sessionsByDateBarChart.width(500)
.height(150)
.dimension(sessionDimension)
.group(numRepsBySession)
.gap(1)
.x(d3.scale.linear().domain([0, 5]))
Моя проблема делает диаграмму, чтобы показать сводку производительности для выбранных сеансов. То, что я действительно хочу, это dc.rowChart
, чтобы рассчитать среднюю мощность, контроль, стабильность. Я смущен, как организовать свои данные. Как я могу сделать группу на reduceSum
на более чем 1 измерении? Мой график должен иметь несколько измерений, но власть, управление и т. Д. Не могут быть сгруппированы, поскольку они не одно и то же/единицы?
Уверен, что у меня нет трюка в организации моих данных. , , Может кто-то указать мне верное направление?