in src/Histogram.js [116:152]
static computeHistogram(data, thresholds, accessor, binDomain, nice) {
let makeHistogram = histogram()
.value(accessor)
.thresholds(thresholds);
if (binDomain) {
// Throw warning if nice = true and binDomain is defined
if (nice) {
/* eslint-disable no-console */
console.warn(
'Warning: if binDomain is defined and nice = true, histogram prioritizes binDomain and disregards nice.',
);
/* eslint-enable no-console */
}
// Use user's passed in binDomain to makeHistogram
makeHistogram = makeHistogram.domain(binDomain);
} else if (nice) {
// Create a linear scale to nice values
const scale = scaleLinear()
.domain(extent(data))
.nice();
// Nicely round domain given temp bins
const niceBinDomain = scale.ticks();
// Set nicely rounded domain as domain for makeHistogram
makeHistogram = makeHistogram.domain([
first(niceBinDomain),
last(niceBinDomain),
]);
}
const bins = makeHistogram(data);
return bins;
}