1 回答

TA貢獻1851條經(jīng)驗 獲得超4個贊
當(dāng)elasticX為true或者沒有設(shè)置x尺度域時,坐標(biāo)網(wǎng)格mixin會生成X域
if (_chart.elasticX() || _x.domain().length === 0) {
_x.domain(_chart._ordinalXDomain());
}
這完全有道理,但它總是在生成域時對域進行排序:
_chart._ordinalXDomain = function () {
var groups = _chart._computeOrderedGroups(_chart.data());
return groups.map(_chart.keyAccessor());
};
我想我們可以考慮在ordering為空時不對域進行排序。
無論如何,一種解決方法是自己設(shè)置域:
.x(d3.scaleBand().domain(the_order))
您不需要為條形圖對組進行排序。(對于折線圖,組順序必須與刻度域一致,但對于條形圖則無關(guān)緊要。)
使用域集,這也有效:
.group(groups.age.valueSum)
我想這個故事的寓意是自動生成圖表很復(fù)雜。大多數(shù)情況下,確實希望對 X 域進行排序,但是讓用戶提供自己的排序的最佳方法是什么?
我不會說這是最好的方法,但有一種方法可以讓它發(fā)揮作用。
添加回答
舉報