2013-11-24 39 views
1

D3映射个数如果我设置尺度这么点规模上与SVG:与规模

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

我怎样才能获得鼠标x位置的非标度是多少?

例如,

xPositions = [1,7,10] 

7是@ X =〜300上的宽度500

的SVG如何将基于任意数据映射300到7?

回答

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); });