0
스택 차트 애플리케이션을 개발 중입니다.d3.js 누적 차트 애니메이션
http://jsfiddle.net/NYEaX/174/
것은 나는 등 여러 인스턴스 ... 다른 속성 결국 서로 다른 데이터 소스를 만들 jQuery 플러그인 내부를 배치했습니다.
지금은 차트 바 및 축에 애니메이션을 적용하는 데 문제가 있습니다.
애니메이션 바코드
animateBars: function(selector, data){
var w = $(selector).data("width");
var h = $(selector).data("height");
var margin = methods.getMargin(h);
methods.setDimensions(w, h, margin);
//methods.setX();
//methods.setY();
//methods.setDomain(data);
var initialHeight = 0;
//var svg = d3.select(selector + " .stackedchart");
var barholder = d3.select(selector + " .barholder");
var state = barholder.selectAll(".state")
.data(data)
.enter()
.append("g")
.attr("class", "g")
.attr("x", function(d) {
return methods.x(d.Label);
})
.attr("transform", function(d) {
return "translate(" + methods.x(d.Label) + ",0)";
});
var bar = state.selectAll("rect")
.data(function(d) {
return d.blocks;
});
// Enter
bar.enter()
.append("rect")
.attr("width", methods.x.rangeBand())
.attr("y", function(d) {
return methods.y(d.y1);
})
.attr("height", function(d) {
return methods.y(d.y0) - methods.y(d.y1);
})
.style("fill", function(d) {
return methods.color(d.name);
});
// Update
bar
.attr("y", function(d) {
return methods.y(d.y1);
})
.attr("height", function(d) {
return methods.y(d.y0) - methods.y(d.y1);
})
.transition()
.duration(500)
.attr("x", function(d) {
return methods.x(d.Label);
})
.attr("width", methods.x.rangeBand())
.attr("y", function(d) {
return methods.y(d.y1);
})
.attr("height", function(d) {
return methods.y(d.y0) - methods.y(d.y1);
});
// Exit
bar.exit()
.transition()
.duration(250)
.attr("y", function(d) {
return methods.y(d.y1);
})
.attr("height", function(d) {
return methods.y(d.y0) - methods.y(d.y1);
})
.remove();
}
http://jsfiddle.net/NYEaX/178/에서 차이가없는 것으로 보입니다. 누적 차트에 애니메이션을 적용한 예는 보지 못했습니다. 표준 막대 차트를 움직이는 예제를 보았지만 그게 –
입니다. 제가 말했듯이, 제가 처음 본 명백한 문제입니다. 코드에는 동일한 문제가 있습니다. 또 다른 문제점은 바 업데이트에서 설정되고 전환 중에 * 다시 * 설정되는 bar.enter() 영역에서 막대 높이를 설정한다는 것입니다. 처음 두 개를 제거하고 이것을 만들었습니다 : http://jsfiddle.net/XnngU/ – Glenn
축은 어떻습니까? 블록을 바닥에서부터 성장시키는 방법도있었습니다. "이전의 경우 y 속성을 0 대신 최대 높이가되도록 설정하십시오. .attr ("y ", methods.height)"http://jsfiddle.net/NYEaX/168/ –