dc.js를 사용하여 두 개의 플롯을 만들고 싶습니다. 내 데이터는 여러 세션과 관련이 있습니다 (각각 다른 날에 발생합니다). 각 세션에는 다양한 매개 변수로 점수가 매겨진 다양한 연습 문제가 있습니다.D3 용 DC로 플롯 팅
플롯 :
- 선택 형 플롯. 모든 세션을 시간 (또는 세션 ID)별로 플롯 한 다음 사용자가 범위를 선택할 수 있도록 필터를 사용합니다.
- 집계 유형 플롯. 그러면 선택한 세션에서 모든 운동 매개 변수 데이터의 평균이 표시됩니다.
사용자는 선택한 범위를 변경하고 성능 변화의 경향을 찾을 수 있습니다.
"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 멋지게 연주 평평한 구조로 개편 : 같은 JSON 형식으로
내 데이터 보인다.
는이 같은 그룹 및 치수 생성 :
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
입니다. 내 데이터를 구성하는 방법에 대해 혼란 스럽다. 2 차원 이상의 reduceSum
그룹을 만들려면 어떻게해야합니까? 내 그래프는 여러 차원을 가져야하지만 전력, 컨트롤 등은 같은 항목/단위가 아니므로 그룹화 할 수 없습니까?
데이터 정리에 트릭이 누락되었습니다. . . 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?