2016-08-24 2 views
3

D3 v3을 사용하여 Mike의 예제와 일치하는 데이터를 포맷하여 내 dev 프로세스를 빠르게 시작했습니다. 여기 https://github.com/d3/d3-3.x-api-reference/blob/master/Stack-Layout.mdd3.js 스택 레이아웃을 v3에서 v4로 업그레이드

var data = [ 
    { 
    "name": "apples", 
    "values": [ 
     { "x": 0, "y": 91}, 
     { "x": 1, "y": 290} 
    ] 
    }, 
    { 
    "name": "oranges", 
    "values": [ 
     { "x": 0, "y": 9}, 
     { "x": 1, "y": 49} 
    ] 
    } 
]; 

예 페이지 그리고 내가 스택 값을 얻기 위해해야 ​​할 일을했을 모든 그는 자신의 예에서했던 정확히 어떻게

var stack = d3.layout.stack().values(d=>d.values) 

var layers = stack(data) 

했다.

그러나 v4에서는 스택 함수가 테이블 형식의 데이터를 필요로하므로 위의 데이터는 다음과 같을 것입니다.

var data = [ 
    {x: 0, apples: 91, oranges: 9}, 
    {x: 1, apples: 290, oranges: 49}, 
]; 

내 데이터 형식을 유지하고 v4 스택 기능을 사용하는 쉬운 방법이 있습니까? 나는 이것을 할 수있는 새로운 방법을 깨뜨릴 수 없다. 내 현재 데이터 형식으로 유용한 배열 값 배열과 관련된 있습니다. 내 데이터 형식을 표 형식으로 변경하면 속성을 값과 쌍을 이루는 편리한 방법이 표시되지 않습니다.

답변

0

동일한 문제가 발생했습니다. 불행하게도, 새로운 방식은 API가 모델 인스턴스를 직렬화하는 방식 (원래 데이터와 비슷한 방식)과 일치하지 않는 것처럼 보입니다. 대신 JSONified 테이블 형식의 데이터 형식을 사용해야합니다. 나는 당신이 CSV 덤프로 작업 할 때 이것이 작동하는 것처럼 느낀다. 그러나 그것은 일반적으로 데이터베이스가 어떻게 구성되는지는 아니다.

에 의해 개체 그룹 형식 (예 : 귀하의 예에서는 x 좌표)을 데이터 포인트 형식으로 변환하는 관련 응답 here을 게시했습니다. 특정 사례에 맞게 코드를 적용 할 수 있습니다.

관련 문제