我正在使用d3.js创建一个堆积条形图,类似于http://mbostock.github.com/d3/ex/stack.html,并添加了一些附加功能,如标签和网格。但是我在实现对数比例尺时遇到了一些问题。我正在使用
d3.scale.log().domain([minNum,maxNum]).range([height,0])
但是我不知道如何在堆叠图中实现它,以下是代码:
var vis = d3.select("#chart")
.append("svg")
.attr("width", width)
.attr("height", height + margin);
var layers = vis.selectAll("g.layer")
.data(data)
.enter().append("g")
.style("fill", function(d, i) { return color(i / (n - 1)); })
.attr("class", "layer");
var bars = layers.selectAll("g.bar")
.data(function(d) { return d; })
.enter().append("g")
.attr("class", "bar")
.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; });
bars.append("rect")
.attr("width", x({x: .9}))
.attr("x", 0)
.attr("y", y1)
.attr("height", function(d) { return y0(d) - y1(d); });
我知道它涉及以下内容: .attr("height", function(d) { return y0(d) - y1(d); }); 任何帮助都将不胜感激。