2

这是关于 Dygraphs 库的问题。

当使用“可见性”方法来抑制多变量时间序列的某些变量的呈现时,只有可见的突出显示点被传递给“highlightCallback”函数(第三个参数,在文档中命名为“points”)。如果用户可以访问回调函数中的所有点,即突出显示的可见如果要设置相应的变量时突出显示的点,那将会很方便 visible

我的问题:是否有功能/解决方法可以访问(un)highlightCallback 函数中不可见的突出显示点的坐标?

为了澄清问题,这里有一个简单的例子:

假设我们有以下多元时间序列

"time_index", "var1", "var2"\n
"1", "5.1", "0.3"\n
"2", "5.5", "0.2"\n
"3", "5.8", "0.1"

g以及使用此数据集的 Dygraph 对象。我们设置

g.updateOptions({visibility: [true, false]});

因此,对应的时间序列var1被绘制,而var2被隐藏。现在假设我们要为var2时间序列的每个突出显示点绘制一条垂直长度线var1,即

  • 点突出显示(1,5.1)时的一条线(1,5.4)=(1,5.1+0.3)(1,5.1)
  • 点突出显示(2,5.5)时的一条线(2,5.7)=(2,5.5+0.2)(2,5.5)
  • 点突出显示(3,5.8)时的一条线(3,5.9)=(3,5.8+0.1)(3,5.8)

这将通过使用 highlightCallback 函数来完成。

g.updateOptions({
highlightCallback: function(event, x, points, row, seriesName) {
draw_line(points[0],[points[0].xval,points[0].yval+points[1].yval]); 
//draw_line(point_start,point_end)
}
});

不幸的是,我还没有找到在highlightCallback函数中访问不可见时间序列的数据var2(即points[1].yval,这里用于确定垂直线的长度)的方法。

感谢您的帮助!

4

1 回答 1

7

dygraphs 确实公开了一个通用数据访问 API,您可以从 highlightCallback 中使用它:

g.numRows()
g.numColumns()
g.getValue(row, column)

http://dygraphs.com/jsdoc/symbols/Dygraph.html#getValue

highlightCallback 的“row”参数对应于 g.getValue() 的第一个参数。

这是一个显示其工作原理的示例:http: //jsfiddle.net/eM2Mg/7/

于 2012-03-21T21:02:20.207 回答