d3.js – 顺序倒数

有没有办法找到倒数的序数?

我使用x轴上的字符串值,它使用顺序标尺,我在鼠标移动时我想用x轴找到反转,以找到鼠标位置处的哪个字符串?

有没有办法找到这个?

var barLabels = dataset.map(function(datum) {
    return datum.image;
});
console.log(barLabels);
var imageScale = d3.scale.ordinal()
        .domain(barLabels)
        .rangeRoundBands([0, w], 0.1);
// divides bands equally among total width, with 10% spacing.
console.log("imageScale....................");
console.log(imageScale.domain());

 .
 .
var xPos = d3.mouse(this)[0];
xScale.invert(xPos);
我实际上认为没有一个倒数方法的顺序尺度没有意义,但是您可以使用ordinal.range()方法计算出这个方法,这将返回每个栏的起始值, ordinal.rangeBand()方法的宽度。

示例:
http://fiddle.jshell.net/dMpbh/2/

相关代码是

    .on("click", function(d,i) {
        var xPos = d3.mouse(this)[0];
        console.log("Clicked at " + xPos);
        //console.log(imageScale.invert(xPos));
        var leftEdges = imageScale.range();
        var width = imageScale.rangeBand();
        var j;
        for(j=0; xPos > (leftEdges[j] + width); j++) {}
            //do nothing, just increment j until case fails
        console.log("Clicked on " + imageScale.domain()[j]);
    });
翻译自:https://stackoverflow.com/questions/20758373/inversion-with-ordinal-scale

转载注明原文:d3.js – 顺序倒数