d3.js에 초보자입니다. 나는 선 그래프에 데이터 점을 고르게 분포시키지 않았다. 오른쪽에 새로운 점을 추가 할 때 mike's path transition tutorial과 같이 왼쪽의 마지막 데이터 점을 제거하고 싶다. 나는 축을 가지고 마지막 전이를 언급하고있다.d3js - 선 그래프의 두 데이터 포인트 간 거리 계산
전환을 제공하는 동안 거리가 고르지 않기 때문에 마지막 두 데이터 포인트 사이의 거리를 계산하고 싶습니다. 마지막 두 점 사이의 총 차이점을 효과적인 전환으로 적용 할 것입니다.
예제 선 그래프. xAxes 범위 : 시간 graph http://i60.tinypic.com/2dq5xv.png
여기 1 위와 2 위는 다른 지점보다 훨씬 더 먼 거리입니다. 그래서 첫 번째 요소를 제거하는 동안 더 많이 전송해야합니다. 두 번째 지점 이후로 나는 아주 작은 거리를 통과해야합니다.
도움을 주시면 감사하겠습니다.
편집
var checkList=getCheckedList(); //getting list of parameters:here read1,read2,read3
updateAxes(checkList,data);
var t = svg.transition().duration(750);
t.select(".x.axis").call(xAxis);
t.select(".y.axis").call(yAxis);
var keys=KeyArray;
var line1;
for(var i=0;i<keys.length;i++)
{
if(actualKeys.indexOf(keys[i]) > -1){
line1=d3.svg.line()
.interpolate("linear")
.x(function(d) { return x(d.time); })
.y(function(d) { return y(d[keys[i]]); });
var id="#"+keys[i]+"_line";
d3.select(id).attr("d",line1(data)); //I want trasition here
}
}
추가 JSFiddle code. 내 로컬 컴퓨터에서 잘 작동하지만 jsfiddle에는 문제가 있습니다. 버튼을 클릭하면 처음 5 개의 데이터 포인트가 새로운 5 개의 데이터 포인트로 바뀌므로 오른쪽에서 왼쪽으로 이동해야합니다.
이해할 수없는 부분이 있으면 알려 주시기 바랍니다.
이것은 첫 번째 (제거됨)와 x 축을 통과 한 두 번째 포인트 사이의 차이입니까? –
그래프에 표시된 원래 거리는 그래프의 전체 높이와 너비에 따라 다를 것이라고 생각합니다. 따라서 그래프의 상대 거리만큼 거리를 구해야합니다. 기본적으로'.attr ("transform", "translate ("+ x (-1) + ")");를 쓰지 않습니다. 그래서 나는 방정식을 번역하거나 d3js 지식으로는 충분하지 않다는 것에 대해 혼란스러워합니다. –
그래프상의 첫 번째 데이터 포인트와 두 번째 데이터 포인트의 위치의 차이는 정확하게 나타납니다. –