Число точек на самом деле определяется crossfilter - dc.js не делает никакой агрегации самостоятельно, поэтому у нее нет возможности добавить или уменьшить количество точек.
Эта документация может вводить в заблуждение - она не изменяет форму данных. xUnits
действительно нужен только для dc.js, чтобы узнать количество элементов, которые он собирается нарисовать. Он используется для двух целей:
- определить ширину полос или билетных участков
- знать ли х масштаб порядковое или количественное
Может dc.js просто подсчитать количество очков в группе перекрестного фильтра? Может быть.
В любом случае, чтобы вернуться к исходному вопросу: если вы хотите уменьшить количество нарисованных точек, агрегируйте свои данные по-разному в своей группе. Обычно это означает создание больших бункеров, которые либо суммируют, либо усредняют данные, которые попадают в этот интервал.
В качестве простого примера, вы можете комбинировать любой другой момент в вашей скрипке на биннинга четных чисел, например, так:
var BINSIZE = 2;
// ...
speedSumGroup = runDimension
.group(function(r) { return Math.floor(r/BINSIZE) * BINSIZE; })
// ...
http://jsfiddle.net/gordonwoodhull/djrhodkj/2/
Это приводит к тому, например, и Run 6, и Run 7, чтобы попасть в один и тот же бит, потому что они имеют один и тот же групповой ключ. В реальном примере вы, вероятно, захотите усреднить их, как показано в the annotated stock example.