D3js v4:scaleOrdinal没有rangePoints()

多纳托·皮罗齐

我将此处的平行坐标源代码迁移到最新的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章