저는 this d3.js example와 협력 중이며 차트 전체 방향을 오른쪽에서 왼쪽으로 변경하려고합니다.d3.js 중첩 된 막대 차트 오른쪽 정렬
var x = d3.scale.linear().range([width, 0]);
및 y 축으로의 위치 :
svg.append("g").attr("class", "y axis")
.attr("transform", "translate("+width+", 0)")
.append("line").attr("y1", "100%");
은 내가이 (가) 각 줄의 변환을 설정해야합니다 생각
나는 X 축 스케일을 반전 할 수 있었다 차트의 폭 - 바의 폭은 임의의 변환을 포함하는 것으로 적용하면g
는 효과가 없습니다. 난 그냥 고정 된 값으로 테스트를 할 경우에도 없음 변환
function bar(d) {
var bar = svg.insert("g", ".y.axis")
.attr("class", "enter")
.attr("transform", "translate(0,5)")
.selectAll("g")
.data(d.children)
.enter().append("g");
//DOESNT WORK
bar.attr("transform", function(n){ return "translate("+ (width - x(n.value)) +", 0)"; })
.style("cursor", function(d) { return !d.children ? null : "pointer"; })
.on("click", down);
bar.append("text")....
bar.append("rect")....
return bar;
}
이 bar
에 설정되어, 결과는 결과 페이지에서 (0,0) 번역입니다.
변환이 적용되지 않는 이유는 무엇이며 바를 올바르게 정렬하는 올바른 방법일까요? 또한 텍스트가 왼쪽 대신 막대의 오른쪽에 있어야하고 추가하는 순서를 변경하면이 점에 차이가없는 것으로 보입니다.
전환이 차트의 오른쪽에서부터 나오기 때문에 감사하지만 꽤 똑같은 효과는 아니지만 나중에 누군가에게 수정하게 할 것입니다. 많은 감사합니다 :) – parliament
안녕하세요 Lars 올바른 calc attr ("x", 함수 (d) {return x.scale (d.value) - width;} .attr ("width", function (d) {return width - 그렇지 않으면 값이 반전됩니다. 즉, 30은 "최대 값에서 30이됩니다." – parliament
이렇게하면 컨테이너 요소를 어떻게 변환하는지에 따라 달라집니다. 적어도 수정 된 예제에서는 모든 것이 올바르게 작동해야하며, 아니요? –