【发布时间】:2017-09-20 20:15:23
【问题描述】:
我是 D3 和 javascripts 的新手。我正在尝试构建一个动画垂直堆积条形图。我为水平堆积条形图找到了一个示例here。调整后,我得到了一个垂直堆叠的条形图,但是,向下增长。这里是my edited fiddle。
更新:经过多次调整,包括下面建议的调整,这终于奏效了:final working upward growing stacked bar chart 我觉得我需要改变的地方应该在这个代码块中
rects = groups.selectAll('.stackedBar')
.data(function(d,i) {console.log("data", d,i); return d; })
.enter()
.append('rect').attr('class','stackedBar')
.attr('y', function(d) { return yScale(d.y0); })
.attr('x', function(d, i) {return xScale(d.x); })
.attr('height',0)
.attr('width', xScale.rangeBand());
console.log(document.querySelectorAll(".stacked"));
var abc=document.querySelectorAll(".stackedBar");
rects
.transition()
.delay(function(d,i,j){console.log("pre",j); return j*500;})
.attr("y", function(d) { return yScale(d.y0); })
.attr("height", function(d) { return yScale(d.y); } )
.duration(1000);
但我四处搜索并试图恢复 yScale 范围,y 的初始位置,但它们都不起作用。我还注意到,无论如何,我的 yAxis 总是低于我的 X 轴向下。
【问题讨论】:
-
您的条形图从顶部开始增长,而您的数据从 0 开始并且您的轴位于顶部。你想从下向上(从 1200+ 开始)增加条形图还是改变整个方向并将 x 轴也放在底部?
-
我想让 x 轴在底部,然后条形图一个接一个地向上增长,就像原始示例所示,但在垂直方向。
-
好的,我在下面添加了答案。
标签: javascript d3.js stacked-chart stackedbarseries