2

このスレッドで、Mike Bostock は、ブラシの範囲の設定とブラシの再描画は 2 つの別個の操作であると説明しています。これは理解できますが、詳細を理解するのに苦労しています。

彼は、次のようなことをする必要があると言います。

brush.extent([0.2, 0.8]); 
svg.select(".brush").call(brush);

ただし、 を実行するcall(brush)と、新しい範囲にブラシの四角形が描画されるだけです。「フォーカス」チャートは更新されません。ただし、自分のbrushed関数 (ブラシに割り当てた関数) を呼び出すと、機能します。

call(brush)実行しないようですbrushed。この関数を実行するにはどうすればよいですか?

更新:これは私のコードのフィドルです。実行すると、ブラシは正しく描画されますが、フォーカスは更新されません。180 行目のコメントを外すと、フォーカスも再描画されます。

(もちろん、最終的にはグラフ オブジェクトの外部からこれを実行したいと考えていますが、今のところは、何が問題なのかを把握するためだけに内部で実行しています。)

本質的に、私は尋ねています:どうすればbrushedオブジェクトの外から関数をトリガーできますか? ブラシ イベント ハンドラはどのように処理しますか?

4

1 に答える 1

3

ブラシの を明示的に設定してextentも、それに関連付けられた関数が呼び出される原因となるイベントはトリガーされません。この場合、最も簡単な解決策は、すでにわかっているようにbrushed()、範囲を設定した後に明示的に呼び出すことです。

于 2013-03-31T17:28:38.583 に答える