【发布时间】:2015-12-01 15:47:00
【问题描述】:
过了一会儿,我终于想出了如何在 d3 线性中缩放数据。 但是,如果您查看以下屏幕截图,您可能会注意到数字似乎没有适当地缩放: 所以:例如4.55 和 16.2 的长度几乎相同,它们不应该是这样的(当我在 0 和 565 之间缩放时,4 也应该更靠近左侧)
这就是我创建线性比例的方式:
var scaledData = d3.scale.linear()
.domain(d3.extent(data, function(d){return d.Betrag;}))
.range([0, width-35]);
这就是我绘制横条的方式:
var bar = chart.selectAll("g")
.data(data)
.enter().append("g")
.attr("transform", function(d, i) { return "translate(0," + i * barHeight + ")"; });
bar.append("rect")
.attr("width", function(d) { return scaledData(Math.abs(Math.round(d.Betrag))); })
.attr("height", barHeight - 1);
bar.append("text")
.attr("x",function(d) { return scaledData(Math.abs(Math.round(d.Betrag)))+3; })
.attr("y", barHeight / 2)
.attr("dy", ".35em")
.text(function(d) { return Math.abs(d.Betrag); });
});
我在这部分 scaledData(Math.abs(Math.round(d.Betrag))) 上尝试过不同的事情,但无论我做什么,它都没有做我认为应该做的事情......也许作为一个新手,我仍然不完全理解天平的事情...... .我认为问题出在我如何设置域。如果我将 d3.extend 函数替换为[0,2000],那就太好了……
【问题讨论】:
标签: javascript d3.js scale