私はd3.jsを使用していますが、this exampleを変更してブラシ付き領域グラフを作成しています。ブラシに基づいて変化するx軸に加えて、ブラシ内に収まるデータのy値に基づいて、グラフのy軸を再描画したいと考えています(振る舞いはa Google Finance chartと同様です)。ブラシ付き領域グラフのy軸を更新します
私は、ブラシをx空間とy空間の両方で描くことができるように機能しています。 [ [x0, y0], [x1, y1] ]
:
var brush = d3.svg.brush()
.x(x2)
.y(y2)
.on("brush", brush);
これはbrush.extent()
は、次の多次元配列を返すことができる:私は最初brush
変数にYスケールを追加することによって、これを行いました。この作品
function brush() {
var extent = brush.extent();
x.domain(brush.empty() ? x2.domain() : [ extent[0][0], extent[1][0] ]);
y.domain(brush.empty() ? y2.domain() : [ extent[0][1], extent[1][1] ]);
focus.select("path").attr("d", area);
focus.select(".x.axis").call(xAxis);
focus.select(".y.axis").call(yAxis);
}
が、ブラシの変数にYスケールを定義することにより、ユーザーは現在、 "ドラッグすることができます:私は、フォーカスチャートのx軸とy軸ドメインを再定義するbrush()
機能でこのデータを使用し元のチャートのように、西から東にドラッグできるだけでなく、フォーカスチャートの「ボックス」を使用します。
私の質問は:ブラシの領域自体の範囲ではなく、ブラシの領域内にある値の範囲を取得するにはどうすればよいですか?これも可能ですか?
d3のブラシのマニュアルはhereです。
完璧な回答!私のチャートのコードにうまくドロップできました。 – fundead