D3에서 먼저 고정 위치에 개체를 추가 한 다음 원본에서 다른 위치로 애니메이션을 적용 할 수 있으므로 문제는 다소 복잡합니다.
예를 들어, 이전 값을 기준으로 새 (중간) 초기 위치를 계산 한 다음 실제 최종 값으로 차트를 다시 업데이트합니다. 이것은 최종 위치로 처음부터 좋은 경로 애니메이션을 만들 것입니다 :
updateGraph([
[...].concat(computeLatestIntermediates()),
[...].concat(getLatestTimes())
]);
updateGraph([
[...].concat(getRealValues()),
[...].concat(getLatestTimes())
]);
는 다른 방법이 0
에 초기 값을 설정할 수 있습니다. 이 목표 값에 바닥에서 멋진 애니메이션을 만들 것입니다 :
updateGraph([
[..., 0, 0, 0, 0],
[...,10,12,13,14]
]);
updateGraph([
[..., 234, 245, 210, 170],
[..., 10, 12, 13, 14]
]);
는 Btw는 : 라인 차트 애니메이션을 할 때 당신은 일반적으로 여러 가지 다른 문제가 있습니다. 그들 중 일부는 마이크
path animation page에 적용됩니다. 관련 질문이 있습니다
here.
편집 (스마트 솔루션) :
대신에 두 번 업데이트 함수를 호출, 당신이 구현할 수있는이 같은 그리기 함수 내에서 두 단계를 그리기 :
function getPathData(d,i) { return "M 0,0 ... L n,n"; }
function getInitalTransform(d,i) { return "translate(...)"; }
function getFinalTransform(d,i) { return "translate(...)"; }
path
.attr("d", getPathData)
.attr("transform", getInitalTransform)
.transition()
.ease("linear")
.attr("transform", getFinalTransform);