2

Dygraphs ライブラリに関する質問です。

多変量時系列の特定の変数のレンダリングを抑制するために「可視性」メソッドを使用する場合、強調表示された目に見えるポイントのみが「highlightCallback」関数に渡されます (ドキュメントでは「ポイント」と呼ばれる 3 番目のパラメーター)。ユーザーがコールバック関数のすべてのポイントにアクセスできると便利です。つまり、ハイライトされた可視ポイント、対応する変数が 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"

およびこのデータセットを使用する 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)
}
});

残念ながら、highlightCallback 関数で、目に見えない時系列のデータvar2(つまり、points[1].yvalここでは垂直線の長さを決定するために使用される) にアクセスする方法を見つけられませんでした。

ご協力ありがとうございました!

4

1 に答える 1

7

dygraphs は、highlightCallback から使用できる一般的なデータ アクセス API を公開します。

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 に答える