2013-04-21 5 views
1

Я хотел бы сделать два графика, используя dc.js. Мои данные относятся к нескольким сеансам (каждый обычно происходит в отдельный день). Каждый сеанс имеет несколько упражнений, которые оцениваются по различным параметрам.построение нескольких измерений в DC для D3

Графики:

  1. Выбор типа сюжета. Я планирую все сеансы (по времени или, возможно, идентификатор сеанса), а затем использовать фильтр, чтобы пользователь мог выбрать диапазон.
  2. Агрегатный участок. Это отображает среднее значение всех данных параметров упражнений по выбранным сеансам.

Идея заключается в том, что пользователь может изменять выбранный диапазон и искать тенденции в изменении производительности.

Мои данные в формате 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 измерении? Мой график должен иметь несколько измерений, но власть, управление и т. Д. Не могут быть сгруппированы, поскольку они не одно и то же/единицы?

Уверен, что у меня нет трюка в организации моих данных. , , Может кто-то указать мне верное направление?

ответ

1

Вы можете добавить данные, чтобы создать столбец «переменная» или «метрика», из которого вы можете создать измерение, а затем выполнить настраиваемую группу для сводной статистики.

 Смежные вопросы

  • Нет связанных вопросов^_^