使用Dygraph很难指向近距离的时间序列点
Time series points in close proximity are hard to point to with Dygraph
我有一个数据的Dygraph散点图,其中我有紧密分组的日期时间戳的实例。 鼠标指针离 X 轴越远,突出显示这些点似乎就越困难。 可以突出显示它们,但在放大之前非常抽搐。
JSFiddle
例如,为了查看与沿 4 或 6 或 8 RPM 线的点相关联的点数据,您必须在 X 和 Y 轴上非常非常紧密地放大。 我希望我的用户能够只指向给定点来获取关联的数据,而不必每次都放大。 有没有办法减少必要的接近度或指向精度,以便从给定点获取点数据?
工作示例:使用上面列出的小提琴,当完全放大时,尝试将鼠标悬停在似乎位于以下位置的点:X: Aug 12, Y: 6
(它的实际数据是:[new Date("2012/08/02 09:49:15"), 6.000000, 44190],。 请注意,几乎不可能突出显示该点,因为即使光标直接位于该点上,具有较小 Y 值的时效接近点更有可能被突出显示。
看起来.findClosestPoint可能是我正在寻找的。 但是阅读最新版本中的评论,我不再那么确定:
/**
* 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 坐标是以编程方式提供的,而不是通过鼠标指针提供的,但这只是一个猜测。 另外,我还没有找到任何使用它的例子。 有没有办法让选择点不那么抽搐?
默认情况下,dygraphs突出显示每个序列的相应点(即出现在输入数据同一行中的点)。这通常是您想要的时间序列图,但正如您所指出的,对于散点图,其中同一序列中可能存在具有相同 x 值的多个点,它会分解。
highlightSeriesOpts
选项通常用于设置当前突出显示的序列的样式,其副作用是将选择逻辑更改为"最接近欧几里得距离",而不是"最接近 x 值"。因此,您可以通过将此选项设置为空对象来实现所需的效果:
new Dygraph(data, div {
highlightSeriesOpts: {}
})
这是带有修复程序的演示的更新版本:JSFiddle
- 时间序列数据的线性回归
- 动态时间序列C3js图表
- 用Javascript编辑范围数据(时间序列)
- 更新 FLOT 时间序列图
- 时间序列统计(如相关性、傅里叶变换)
- 如何用javascript更简洁地填充时间序列数据中缺失的值
- 如何生成时间序列的所有排列
- Javascript 添加了缺失天数的时间序列结果
- d3.js 时间序列图表上的标签
- JQPLOT 中的垂直折线图(时间序列)
- 使用套接字io和angularjs处理频繁变化的时间序列数据的策略
- C3 时间序列图表给出错误 <路径>属性的值无效
- 在 D3.js 中绘制实时时间序列时奇怪的 x 值
- 动画时间序列流程图
- 如何在 c3.js 中将零值添加到时间序列中
- 您能否告诉 JSON.Net 即使未指定也将日期时间序列化为 UTC
- 绘制 D3 折线图后如何添加更多时间序列数据
- C3.js 中的时间序列图无法访问时间戳
- 使用Dygraph很难指向近距离的时间序列点
- JQuery-使用FlotCharts绘制php中的时间序列数据