Zaktualizuj oś y wykresu obszaru szczotkowanego

Używam d3.js i pracuję nad mapą obszaru szczotkowanego przez modyfikacjęten przykład. Oprócz zmiany osi x na podstawie pędzla, chciałbym, aby oś Y wykresu była przerysowana na podstawie wartości y danych wchodzących w skład pędzla (podobnie jak w przypadku zachowaniawykres Google Finance).

Udało mi się uzyskać funkcjonalność, ale tylko w sposób, który umożliwia rysowanie pędzla zarówno w przestrzeni X, jak i Y. Zrobiłem to, dodając najpierw skalę y dobrush zmienna:

var brush = d3.svg.brush()
    .x(x2)
    .y(y2)
    .on("brush", brush);

To sprawiabrush.extent() zwróć następującą wielowymiarową tablicę:[ [x0, y0], [x1, y1] ]. Następnie używam tych danych wbrush() funkcja przedefiniowania domeny X i Y dla wykresu fokusowego:

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

Działa to, ale definiując skalę y w zmiennej pędzla, użytkownik może teraz przeciągać „pola” na wykresie fokusu, a nie tylko przeciągać zachód na wschód, jak na oryginalnym wykresie.

Zasadniczo moje pytanie brzmi:jak uzyskać zakres wartości, które mieszczą się w obszarze pędzla, a nie zasięg samego obszaru pędzla? Czy to możliwe?

Dokumentacja pędzla d3 jesttutaj.

questionAnswers(2)

yourAnswerToTheQuestion