@@ -32,19 +32,20 @@ function findExtreme(fn, values, len) {
3232}
3333
3434function findExtremes ( values , len ) {
35- return [
35+ return fixExtremes (
3636 findExtreme ( Math . min , values , len ) ,
3737 findExtreme ( Math . max , values , len )
38- ] ;
38+ ) ;
3939}
4040
4141function dimensionExtent ( dimension ) {
4242 var range = dimension . range ;
43- if ( ! range ) range = findExtremes ( dimension . values , dimension . _length ) ;
44-
45- var lo = range [ 0 ] ;
46- var hi = range [ 1 ] ;
43+ return range ?
44+ fixExtremes ( range [ 0 ] , range [ 1 ] ) :
45+ findExtremes ( dimension . values , dimension . _length ) ;
46+ }
4747
48+ function fixExtremes ( lo , hi ) {
4849 if ( isNaN ( lo ) || ! isFinite ( lo ) ) {
4950 lo = 0 ;
5051 }
@@ -404,8 +405,15 @@ function calcAllTicks(cd) {
404405 var dim = dimensions [ k ] . _ax ;
405406
406407 if ( dim ) {
407- if ( ! dim . range ) dim . range = findExtremes ( values , trace . _length ) ;
408- if ( ! dim . dtick ) dim . dtick = 0.01 * ( Math . abs ( dim . range [ 1 ] - dim . range [ 0 ] ) || 1 ) ;
408+ if ( ! dim . range ) {
409+ dim . range = findExtremes ( values , trace . _length ) ;
410+ } else {
411+ dim . range = fixExtremes ( dim . range [ 0 ] , dim . range [ 1 ] ) ;
412+ }
413+
414+ if ( ! dim . dtick ) {
415+ dim . dtick = 0.01 * ( Math . abs ( dim . range [ 1 ] - dim . range [ 0 ] ) || 1 ) ;
416+ }
409417
410418 dim . tickformat = dimensions [ k ] . tickformat ;
411419 Axes . calcTicks ( dim ) ;
0 commit comments