Ich verwende diesen Code für ein Histogrammlayout für d3.js, das den Datensatz verwendet. Die Startposition der Rechtecke ist jedoch nicht 0. Wie beim Histogrammlayout sollte die Startposition immer 0 sein, aber irgendwie bekomme ich nicht 0. Hilf mir bitte, das Zeigen zu zeigen, wenn es Fehler gibt.d3.layout.histogram() gibt falsche Ausgabe zurück
Danke. Tutorial-Video
Referenz - 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);
}