Вам просто нужно изменить домен масштаба y
для этого.
Сначала давайте создадим глобальную переменную с именем globalData
и свяжем с ней массив данных. Примечание: это не правильный способ сделать это, но я сделаю это просто потому, что функции brushed
и zoomed
лежат вне d3.csv
, что является асинхронным и рефакторинг требует некоторой работы ... так что это будет ваша работа по рефакторингу.
Затем в функциях brushed
и zoomed
мы фильтруем данные в соответствии с кистью:
var filteredData = globalData.filter(function(d){
return d.date > x.domain()[0] && d.date < x.domain()[1]
});
После этого мы вычисляем новый домен y:
y.domain([0, d3.max(filteredData, function(d){
return d.price
})]);
Не забудьте снова вызвать ось.
Это обновленные bl.ocks: https://bl.ocks.org/GerardoFurtado/17fd6b82324e355c768992e78140fe9a/33b9a6c58265454864a9d921df032e708fad5237