尝试从d3.js SVG图形上的x坐标检索x值
我有点迷糊了,我希望有人能给我指出解决问题的正确方向。由于搜索的措辞,在谷歌上运行搜索对我没有多大帮助 我想做的是得到图形上x位置的“值”。在我的图表上,我的x轴由日期组成。例如,如果我知道图表上绘制的x坐标点是200,我想要x位置200的日期标签。有很多教程和示例演示如何检索x坐标(200),但没有检索x坐标值(x位置200的日期对象) 我最终要做的是构建一个用户注释功能,它允许用户在图形上选择一个x位置,然后在该点上进行注释。我需要为该注释存储一个对象,其中包含其坐标的x和y值,并且由于图形上的点是通过将日期对象应用于.x来映射和重新映射的,因此我需要获取我在图形上绘制的任何点的日期,以便可以记录和重新应用这些点,甚至在用户决定移动便笺工具时也会移动 不管怎样,我正在寻找一种方法来逆向工程这个尝试从d3.js SVG图形上的x坐标检索x值,d3.js,D3.js,我有点迷糊了,我希望有人能给我指出解决问题的正确方向。由于搜索的措辞,在谷歌上运行搜索对我没有多大帮助 我想做的是得到图形上x位置的“值”。在我的图表上,我的x轴由日期组成。例如,如果我知道图表上绘制的x坐标点是200,我想要x位置200的日期标签。有很多教程和示例演示如何检索x坐标(200),但没有检索x坐标值(x位置200的日期对象) 我最终要做的是构建一个用户注释功能,它允许用户在图形上选择一个x位置,然后在该点上进行注释。我需要为该注释存储一个对象,其中包含其坐标的x和y值,并且由于图形
function getDateX(x, data) {
var dateX = x(data.Date);
return dateX;
}
…但在本例中,不是取回x坐标位置,而是基于提供的x坐标位置取回日期
如果您能为我提供解决方案,我将不胜感激。谢谢你抽出时间
var x = d3.scale.linear()
.domain([0,200])
.range([new Date("2000-01-01"), new Date("2001-01-01")]);
new Date(x(150))
// Sun Oct 01 2000 21:00:00 GMT+0900 (東京 (標準時))
或者,如果您已经有了日期->数字的刻度
var x = d3.time.scale()
.range([0,200])
.domain([new Date("2000-01-01"), new Date("2001-01-01")]);
x.invert(150)
// Sun Oct 01 2000 21:00:00 GMT+0900 (東京 (標準時))
每个刻度都有一个.invert()函数。提供了类似问题的答案