1
我正在使用此代碼爲d3.js使用數據集的直方圖佈局。但是,矩形的起始位置不是0.根據直方圖佈局,起始位置應始終爲0,但不知何故,我不會得到0.請在出現錯誤時請幫助我購買指向。d3.layout.histogram()返回錯誤的輸出
謝謝。
參考教程視頻 - https://youtu.be/0CZ7-f9wXiM?list=PL6il2r9i3BqH9PmbOf5wA5E1wOG3FT22p
的jsfiddle - https://jsfiddle.net/tewjyfed/
create(dataset);
function create(data) {
var map = data.map(function(i) { return parseInt(i.skill) });
var histogram = d3.layout.histogram()
.bins(7)
(map);
var yscale = d3.scale.linear()
.domain([0, d3.max(histogram.map(function(i) { return i.length }))])
.range([0, height]);
var xscale = d3.scale.linear()
.domain([0, d3.max(map)])
.range([0, width]);
var axis = d3.svg.axis()
.scale(xscale)
.orient('bottom');
var bar = svg.selectAll('bar')
.data(histogram)
.enter()
.append('g');
bar.append('rect')
.attr('x', function(d) { return xscale(d.x)})
.attr('y', function(d) { return height - yscale(d.y) })
.attr('width', function(d) { return xscale(d.dx) })
.attr('height', function(d) { return yscale(d.y)})
.attr('fill', 'lightsteelblue')
.attr('stroke', 'steelblue');
svg.append('g')
.attr('transform', 'translate(0, '+height +')')
.call(axis);
}