d3用比例映射数字

时间:2013-11-24 08:38:29

标签: d3.js

如果我设置了比例,那么svg上的点数是按比例的:

d3.scale.linear().domain(xDomain).range([0, width]);

如何获取鼠标x位置的未缩放数字?

例如

xPositions = [1,7,10]

7是宽度为500的svg上的@ x = ~300

如何根据任意数据将300映射到7?

1 个答案:

答案 0 :(得分:2)

您可以使用scale.invert function进行逆映射:

var xScale = d3.scale.linear().domain(xDomain).range([0, width]);
var xDomainPos = [1, 7, 10];
var xRangePos = xDomainPos.map(function (d) { return xScale(d); });
var xNewDomainPos = xRangePos.map(function (d) { return xScale.invert(d); });