Обновите ось Y начищенной диаграммы области

Я использую d3.js, и я работаю над матовой диаграммой площади, изменяяэтот пример, В дополнение к изменению оси X в зависимости от кисти, я бы хотел, чтобы ось Y диаграммы перерисовывалась на основе значений Y данных, которые попадают в состав кисти (аналогично поведениюграфик Google Finance).

Я получил работоспособность функциональности, но только таким способом, который позволяет рисовать кисть в x- и y-пространстве. Я сделал это, сначала добавив шкалу y кbrush переменная:

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

Это делаетbrush.extent() вернуть следующий многомерный массив:[ [x0, y0], [x1, y1] ], Затем я использую эти данные вbrush() Функция для переопределения x- и 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 в переменной кисти, пользователь теперь может перетаскивать «прямоугольники» на фокусной диаграмме, а не только перетаскивать с запада на восток, как на исходной диаграмме.

По сути, мой вопрос:как получить диапазон значений, которые попадают в область кисти, а не диапазон самой области кисти? Это вообще возможно?

Документация кисти d3Вот.

Ответы на вопрос(2)

Ваш ответ на вопрос