Домен вашего scaleOrdinal
должен быть массивом, содержащим набор значений, которые вернет ваш colorAccessor
. Прямо сейчас вы вытягиваете набор индексов dc.config.defaultColors()
.
. Один простой способ получить набор значений - это сопоставить ваш group.all()
с вашим colorAccessor
:
.domain(speedSumGroup.all().map(d => d.key))
Кроме того, d3.values предназначен для использования с ассоциативными массивами, то есть объектами. Он не действует при применении к обычному массиву.
Вот общий способ сделать это, который должен работать в большинстве случаев:
chart
.colorAccessor(d => d.key)
.colors(d3.scaleOrdinal()
.domain(speedSumGroup.all().map(d => d.key))
.range(dc.config.defaultColors()));
Пример скрипки .