1
我有一個線性度:轉換給定的範圍值域值D3
var xRange.range([0, parentWidth]).domain([0, 100]);
現在鼠標懸停我得到使用d3.mouse(container)
鼠標光標的XY COORDS。然後我顯示一個浮動工具提示。我需要根據xRange比例將xy值從鼠標位置計算出來。
我該怎麼做?或者是否必須創建另一個具有交換範圍和域值的比例?
我有一個線性度:轉換給定的範圍值域值D3
var xRange.range([0, parentWidth]).domain([0, 100]);
現在鼠標懸停我得到使用d3.mouse(container)
鼠標光標的XY COORDS。然後我顯示一個浮動工具提示。我需要根據xRange比例將xy值從鼠標位置計算出來。
我該怎麼做?或者是否必須創建另一個具有交換範圍和域值的比例?
不需要另一個比例。對於線性(數字)輸入,您可以使用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
更多好消息:invert()也存在於其他尺度上,例如日誌,功能和日期。 – 2015-07-01 22:04:23
您是否在尋找https://github.com/mbostock/d3/wiki/Quantitative-Scales#linear_invert? – Oleg 2014-10-27 11:39:41
沒錯,我怎麼會錯過它?如果你把它作爲答案,我會標記它,謝謝! – 2014-10-27 12:31:35