【发布时间】:2014-03-12 03:42:48
【问题描述】:
我是D3.js 的新手,目前正在为我的一个项目开发line chart。我参考了文档和示例here 并创建了我自己的版本here。
现在,我打算在这里添加两个交互功能:
- 鼠标悬停在图表中时,绘制一条垂直线到最近的数据点。
- 在这条垂直线旁边显示一个带有 X 和 Y 属性的标签。
为了让这个功能更清晰,请参考这个example。
这是我尝试过的一个建议:
svg.append("g") // creating new 'group' element
.selectAll('rect') // adding a rectangle for the label
.selectAll('line'); // adding a line
但是,线和矩形不显示。我一直在谷歌搜索,但没有白费。我错过了什么?
【问题讨论】:
-
你见过NVD3吗?
-
@LarsKotthoff:谢谢你的建议,但我只能使用 D3 库。
-
使用 .selectAll('rect') 和 .selectAll('line') 您正在选择刚刚创建的 'g' 元素内的所有矩形和线条,该元素是空的。这就是为什么你没有让这些元素出现。
-
This answer should help you figure out the nearest datapoint based on the mouse position。 This tutorial should help you figure out how to position an HTML tooltip overtop of your SVG。但是您还需要花更多时间在 d3 tutorials 上并构建自己的简单图表,以便清楚地了解选择如何工作(和不工作)。
标签: javascript d3.js