将给定的范围值转换为D3中的域值

时间:2014-10-27 09:16:16

标签: javascript d3.js

我有一个线性刻度:

var xRange.range([0, parentWidth]).domain([0, 100]);

现在在鼠标悬停时,我使用d3.mouse(container)获取鼠标光标的xy坐标。然后我展示了一个漂浮的工具提示。我需要根据xRange标度来设置从鼠标位置计算的xy值。

我该怎么办?或者我是否必须使用交换范围和域值创建另一个比例?

1 个答案:

答案 0 :(得分:10)

无需其他规模。对于线性(数字)输入,您可以使用linear.invert(),其中:

  

返回输入域x中输出范围y中对应值的值。这表示从范围到域的逆映射。

示例:

var x = d3.scale.linear()
        .domain([0,50])
        .range([0,100]);

// domain to range:
x(25); // 50

// range to domain:
x.invert(50); // 25