D3 - 使用字符串作为轴刻度

时间:2012-08-04 09:46:34

标签: javascript d3.js

您有以下域array=["Col 1", "2012", "total"],我以这种方式创建比例

x = d3.scale.ordinal()
        .domain(array)
        .rangeRoundBands([0,width], .1);

我用这种方式称呼轴:

 d3.svg.axis()
        .scale(x);

不幸的是,这会产生不稳定的行为和重绘时的数据交换,如下所示:http://jsbin.com/ibewux/9/edit

获得稳定行为的唯一方法是为域提供数值,即array = [0,1,2,3,...]

如何显示此格式的刻度[“Col 1”,“2012”,“total”,...,“any string”]而不是数字(即[0,1,2,.. .N])并避免数据在重绘时绘制交换(显然在每次不同的随机刻度上)?

非常感谢

1 个答案:

答案 0 :(得分:3)

ordinal scales已经出现axis刻度为domain values的情况。如下所示:

此处将axis.tickValues设置为比例的域是多余的。