このスレッドで、Mike Bostock は、ブラシの範囲の設定とブラシの再描画は 2 つの別個の操作であると説明しています。これは理解できますが、詳細を理解するのに苦労しています。
彼は、次のようなことをする必要があると言います。
brush.extent([0.2, 0.8]);
svg.select(".brush").call(brush);
ただし、 を実行するcall(brush)
と、新しい範囲にブラシの四角形が描画されるだけです。「フォーカス」チャートは更新されません。ただし、自分のbrushed
関数 (ブラシに割り当てた関数) を呼び出すと、機能します。
call(brush)
実行しないようですbrushed
。この関数を実行するにはどうすればよいですか?
更新:これは私のコードのフィドルです。実行すると、ブラシは正しく描画されますが、フォーカスは更新されません。180 行目のコメントを外すと、フォーカスも再描画されます。
(もちろん、最終的にはグラフ オブジェクトの外部からこれを実行したいと考えていますが、今のところは、何が問題なのかを把握するためだけに内部で実行しています。)
本質的に、私は尋ねています:どうすればbrushed
オブジェクトの外から関数をトリガーできますか? ブラシ イベント ハンドラはどのように処理しますか?