默认排序嵌入在dc.js:中
function pieLayout () {
return d3.pie().sort(null).value(_chart.cappedValueAccessor);
}
我想覆盖这个默认值,并按Value而不是Key排序。
有没有我缺少的功能可以做到这一点,或者有没有一种方法可以使用d3选择图表并使用类似的东西进行排序:
d3.layout.pie().sort(null).value(function(d) { return d.freq; });
在dc.js中,排序是通过BaseMixin.ordering((.处理的
您引用的行禁用了D3的排序,因为dc.js已经对数据进行了排序。(看起来pie.sort
已经默认为null,所以这可能是多余的。(
所有CapMixin图表(饼图和行图(的默认值是从最大值到最小值进行排序。(从馅饼顶部顺时针方向。(
this.ordering(kv => -kv.value);
源
如果您看到的是字母排序,一个可能的原因是您的组reduce值是对象,这将在上面的表达式中强制为NaN。排序失败,保留group.all()
排序,按键排序。如果是这样的话,你可能想要像这样的东西
pieChart.ordering(kv => -kv.value.freq)
我对dc.js不太熟悉,但dc.pieLayout
返回的对象实际上是一个饼图生成器。这意味着您可以通过对返回值调用.sort()
来覆盖返回对象的属性:
var pieLayout = dc.pieLayout()
.sort(function(d) { return d.value });
这将覆盖dc.js 设置的默认值