Index: lams_central/web/includes/javascript/chart.js =================================================================== diff -u -r309a5f64154c6b918bb9bac3e936bbe5b82896b4 -re68d1ad1bbfddafa6a38e824528fad69aec618be --- lams_central/web/includes/javascript/chart.js (.../chart.js) (revision 309a5f64154c6b918bb9bac3e936bbe5b82896b4) +++ lams_central/web/includes/javascript/chart.js (.../chart.js) (revision e68d1ad1bbfddafa6a38e824528fad69aec618be) @@ -238,12 +238,7 @@ .extent([[0, 0], [width, height2]]) .on("brush end", _brushed); - var zoom = d3.zoom() - .scaleExtent([1, Infinity]) - .translateExtent([[0, 0], [width, height]]) - .extent([[0, 0], [width, height]]) - .on("zoom", _zoomed); - + var zoom; var x; var x2; var y = d3.scaleLinear() @@ -276,10 +271,18 @@ data = response.data; var max = Number(d3.max(data))+1; var min = Number(d3.min(data)); - if ( min < 0 ) - min = 0; - var buckets = (max-min) <= 11 ? (max-min) : 10; + var range = max-min; + var buckets = range <= 11 ? range : 10; + // where the range > 11, aim for a zoom where bucket width is no more than a half a mark + var zoomFactor = range <= 11 ? 10 : Math.round(range / 5); + console.log("range "+range+" zoomFactor "+zoomFactor); + zoom = d3.zoom() + .scaleExtent([1, zoomFactor]) + .translateExtent([[0, 0], [width, height]]) + .extent([[0, 0], [width, height]]) + .on("zoom", _zoomed); + // x, y are top detailed graph, x2, y2 are the bottom overview graph. x, x2 declared already so that // so that they can be accessed by function x = d3.scaleLinear()