我有一个我们数据的Dygraph散点图,其中我绘制了紧密分组的日期时间戳的实例。鼠标指针距离X轴越远,突出显示这些点就越困难。可以突出显示它们,但在非常紧密地放大之前它会非常抽搐。
例如,为了查看与4或6或8 RPM线上的点相关联的点数据,您必须非常非常紧密地放大X和X轴。 Y轴。我希望我的用户能够只指向给定的点来获取相关数据,而不必每次都放大。有没有办法减少必要的接近度,或指向从给定点获取点数据的精确度?
工作示例:
使用上面列出的小提琴,当完全缩小时,尝试将鼠标悬停在看似位于X: Aug 12, Y: 6
的位置(它的实际数据是:[新日期(&#34) ; 2012/08/02 09:49:15"),6.000000,44190] ,请注意,几乎不可能突出显示该点作为与较小Y值紧密时间接近的点即使您已经将光标直接放在点上,也更有可能被突出显示。
看起来.findClosestPoint可能就是我想要的。但是阅读comments in the latest build,我不再那么肯定了:
/**
* Given canvas X,Y coordinates, find the closest point.
*
* This finds the individual data point across all visible series
* that's closest to the supplied DOM coordinates using the standard
* Euclidean X,Y distance.
*
* @param {number} domX graph-relative DOM X coordinate
* @param {number} domY graph-relative DOM Y coordinate
* Returns: {row, seriesName, point}
*
@private
*/
这似乎意味着Canvas坐标是以编程方式提供的,而不是通过鼠标指针提供的,但这只是猜测。此外,我还没有找到任何使用它的例子。是否有某种方法可以选择一个不那么抽搐的点?
答案 0 :(得分:2)
默认情况下,dygraphs会突出显示每个系列的对应点(即出现在输入数据的同一行中的点)。这通常是您想要的时间序列图,但正如您所注意到的,对于散点图,同一系列中可能有多个点具有相同的x值,它会分解。
highlightSeriesOpts
选项通常用于设置当前突出显示的系列的样式,其副作用是将选择逻辑更改为“最接近欧几里德距离”,而不是“最接近x值” 。因此,您可以通过将此选项设置为空对象来实现所需的效果:
new Dygraph(data, div {
highlightSeriesOpts: {}
})
以下是使用修补程序的演示的更新版本:JSFiddle