Библиотека Dygraphs: Доступ к невидимым данным в функции highlightCallback возможен? - PullRequest
1 голос
/ 21 марта 2012

Это вопрос к библиотеке Dygraphs.

При использовании метода «видимости» для подавления рендеринга некоторых переменных многомерного временного ряда, только выделенные точки видимые передаются в функцию «highlightCallback» (третий параметр с именем « баллы »в документации). Было бы удобно, если бы у пользователя был доступ ко всем точкам в функции обратного вызова, т.е. выделенные видимые точки и точки , которые были выделены, если были установлены соответствующие переменные виден .

Мой вопрос: есть ли функциональность / обходной путь для получения доступа к координатам невидимых выделенных точек в функции (не) highlightCallback?

Чтобы прояснить проблему, вот краткий пример:

Предположим, у нас есть следующий многомерный временной ряд

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

и объект Dygraph g, использующий этот набор данных. Мы устанавливаем

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)
}
});

К сожалению, я не нашел способа получить доступ к данным невидимого временного ряда var2 (т. Е. points[1].yval, здесь используется для определения длины вертикальной линии) в функции highlightCallback.

Спасибо за помощь!

1 Ответ

6 голосов
/ 22 марта 2012

dygraphs предоставляет общий API доступа к данным, который вы можете использовать из highlightCallback:

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

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

Параметр «row» для highlightCallback соответствует первому параметру g.getValue ().

Вот пример, показывающий, как это работает: http://jsfiddle.net/eM2Mg/7/

...