D3.js를 사용하여 다른 분포의 커널 밀도 추정치 (파이썬에서 추정치를 내보내는 대신)를 생성하여 서로 위에 겹칠 수 있도록하려고합니다. related question에서D3.js에서 DOM 요소에 함수 결합하기
는, 내가 문제가 예제의 일부를 연결하는 데이터를 이해하는 데, 그것을 어떻게 예를 나타내는 this 페이지로
을 지시했다. 작성자는 science.stats.bandwidth
을 그의 path
요소에 조인하지만 그는 전혀 사용하지 않는 것으로 보입니다. 바운드 함수/데이터를 참조하지 않고 속성이 path
으로 설정됩니다.
science.stats.bandwidth
에서 대역폭 기능 중 하나만 사용하고 싶습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있는지 궁금 해서요.
sa=vis.selectAll(".cat")
.data(result)
.enter()
.append("g")
.attr("class", "category");
count = 0;
sa.each(function(){
sb = d3.select(this);
sb.selectAll(".path")
.data(d3.values(science.stats.bandwidth))
.enter()
.append("path")
.attr("stroke", function(d){return color(d)})
.attr("d", function(h) {
return line(allKde[count].bandwidth(h)(d3.range(<lowerExtent>,<higherExtent>,1)));
})
count = count + 1;
});
결과가 [{'a':'<name>','b':<array of numbers>}...]
과 같은 사전의 목록입니다 다음과 같이 링크 된 예에서
내 modfications 지금까지입니다. 그것은 사용하기 때문에이 혼동 될 수
.attr("d", function(h) {
return line(allKde[count].bandwidth(h)(d3.range(<lowerExtent>,<higherExtent>,1)));
})
: allKde는 SVG 경로의 d
속성이 참으로 바인딩 된 데이터를 사용 설정 science.stats.kde().sample(result<index>.b)
I에 대한
science.stats.bandwidth[0]
을 지금까지 내가 한 것을 추가했습니다. 'result'에서 각 항목에 대해 두 가지 커널 밀도 추정값을 산출합니다. 나는 각 항목에 대해 단 하나의 커널 밀도 추정을 생성하고,'path'에 바인딩 된'result' 자체를 이상적으로 추가하여 범례를 추가 할 수 있습니다. 감사! – portugueseNinja