D3.js를 사용하여 svg 행을 그립니다. 줄 경로에 추가하기 전에 중복 (x, y) 점을 제거하여 성능을 향상시키고 싶습니다. D3 또는 javascript에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 이 테스트를 위해 json 파일에서 데이터를로드하고 있지만 나중에 서버에 배열로 올 수 있습니다.d3 줄 필터 중복 (제거) 중복 점
아래의 코드 스킵 및 콘솔 출력을 참조하십시오. 어떤 도움 (JS {} !== {}
에서와 같이) 사용자 정의 iterator 함수를 전달
var x = d3.scale.linear().domain([xMin, xMax]).rangeRound([0, width]);
var y = d3.scale.linear().domain([yMin, yMax]).rangeRound([height, 0]);
var line = d3.svg.line()
.x(function(d, i) {
var xPoint = x((i + 1) * xMult);
console.log("xPoint= " + xPoint.toString());
return xPoint; })
.y(function(d) {
var yPoint = y(d);
console.log("yPoint= " + yPoint.toString());
return yPoint; })
.interpolate("basis-open")
.tension(0);
...
// Add the valueline path.
g.append("path")
.attr("class", "line")
.attr("d", line(data));
--------------------------------------------------
Console Output from two lines in code above
console.log("xPoint= " + xPoint.toString());
console.log("yPoint= " + yPoint.toString());
----------------------------------------------
xPoint= 0
yPoint= 24
xPoint= 0
yPoint= 24
xPoint= 1
yPoint= 24
xPoint= 1
yPoint= 24
xPoint= 1
yPoint= 24
xPoint= 1
yPoint= 24
xPoint= 2
yPoint= 24
xPoint= 2
yPoint= 25
xPoint= 2
yPoint= 25
xPoint= 2
yPoint= 24
xPoint= 3
yPoint= 25
xPoint= 3
yPoint= 25
xPoint= 3
yPoint= 25
xPoint= 3
yPoint= 25
xPoint= 4
yPoint= 25
덕분에, 나는 데이터들과 함께 재생됩니다. 그러나, 나는 더 많은 D3.js 중심 접근법을 찾고있었습니다. 문제는 실제로 스케일 된 데이터 d3.scale에서 라인 포인트가옵니다. 실제 데이터가 아닙니다. –