我将此处的平行坐标源代码迁移到最新的d3js版本(d3js 4.5.0)。我坚持这一行:
var x = d3.scale.ordinal().rangePoints([0, width], 1)
似乎在d3js v4中该rangePoints
功能不再存在。我可以更改为d3。scaleOrdinal(),但仅具有range
功能,而没有rangePoints
功能。有什么线索吗?
在D3 v4中,创建了两个新的比例尺:scaleBand
和和scalePoint
,它们现在具有scale.ordinal
第3版中的某些功能(包括rangePoints
)。
它记录在changelog中:
同样,ordinal.rangePoints和ordinal.rangeRoundPoints方法已替换为新的ordinal scale子类:点标度。3.x中的以下代码:
var x = d3.scale.ordinal() .domain(["a", "b", "c"]) .rangePoints([0, width]);
在4.0中与此等效:
var x = d3.scalePoint() .domain(["a", "b", "c"]) .range([0, width]);
因此,这里需要的比例尺是scalePoint:
点标度是带宽固定为零的频带标度的变体。点刻度通常用于按序或分类维的散点图。
因此,将比例尺更改为:
var x = scalePoint()
.range([0, width])
.padding(.1);
注意padding
:在点刻度中,range
仅接受范围数组,不再接受填充。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句