Извините, но я пока не могу добавить комментарий, поэтому отвечаю так.
Я изменил эту функцию на:
function round(array) {
var min = Math.min(...array),
max = Math.max(...array),
spacing = (max - min) / (max - 1),
fixed = Math.ceil(-Math.log10(spacing));
if (fixed < 0) return array;
return array.map(v => v.toFixed(fixed));
}
И результат выглядит хорошо.
Спасибо!
Причина, по которой я это изменил, заключалась в том, что когда у меня было больше данных, а разница между max и min была высокой, возвращалось меньшее / плохое десятичное число. С этим как будто мне нужно.