D3.js로 특정 막대 차트를 만들려고하는데 일치 할 수있는 예를 찾을 수 없습니다. 두 개의 계열 (하나는 음수, 하나는 일반적으로 양수)이 같은 선에 배치되지만 누적되지 않은 막대 차트를 코딩합니다.
명확하지 않은 것 같아서 Highcharts에서 만들었습니다 . D3를 사용하여 이전에했던지도와 차트를 연결하고 싶습니다.
그래서 누군가 나를 도울 수있는 예를 알고 있습니까? 시리즈가 정렬되지 않은 경우에도 차트를 직접 정렬 할 수 있습니까? 두 시리즈가 정시에 포지티브 인 경우 작은 시리즈가 가장 큰 시리즈 앞에 표시됩니까?
요령은 데이터를 주문하는 것입니다. 이렇게하려면 다음 [d3.ascending()][1]
함수를 사용할 수 있습니다 .
다음 예제 데이터를 사용합니다.
data = [{
name: "A",
valueRight: 1,
valueLeft: 2
}, {
name: "B",
valueRight: 4,
valueLeft: 5
}, ...]
우리는해야:
function leftBound(node) {
return d3.max([node.valueLeft,-node.valueRight])
}
function rightBound(node) {
return d3.max([node.valueRight,-node.valueLeft])
}
dataSort = function(a,b) {
res = d3.descending(leftBound(a),leftBound(b))
if(res==0) {
return d3.descending(rightBound(a),rightBound(b))
} else {
return res
}
}
재사용 가능한 차트의 경우 사용할 수도 [selection.sort()][2]
있지만 2 개의 막대 범주에 대해이 작업을 수행해야합니다.
JsFiddle : http://jsfiddle.net/vgZ6E/55/
스크린 샷 :
원본 코드는 다음 질문에서 나온 것 입니다. 각 레코드에 대한 pos & neg 막대 (승 / 패)가있는 d3.js 막대 차트
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다