@@ -717,7 +717,8 @@ axes.calcTicks = function calcTicks(ax, opts) {
717717
718718 var removedPreTick0Label = false ;
719719 var ticksOut = new Array ( tickVals . length ) ;
720- for ( var i = 0 ; i < tickVals . length ; i ++ ) {
720+ var i ;
721+ for ( i = 0 ; i < tickVals . length ; i ++ ) {
721722 var _minor = tickVals [ i ] . minor ;
722723 var _value = tickVals [ i ] . value ;
723724
@@ -745,28 +746,32 @@ axes.calcTicks = function calcTicks(ax, opts) {
745746 var B = tickVals [ b ] . value ;
746747
747748 var delta = definedDelta || Math . abs ( B - A ) ;
748- var half = axrev ? - 0.5 : 0.5 ;
749749 if ( delta >= ONEDAY * 365 ) { // Years could have days less than ONEAVGYEAR period
750- v += half * ONEAVGYEAR ;
750+ v += ONEAVGYEAR / 2 ;
751751 } else if ( delta >= ONEDAY * 28 ) { // Months could have days less than ONEAVGMONTH period
752- v += half * ONEAVGMONTH ;
752+ v += ONEAVGMONTH / 2 ;
753753 } else if ( delta >= ONEDAY ) {
754- v += half * ONEDAY ;
754+ v += ONEDAY / 2 ;
755755 }
756756
757757 ticksOut [ i ] . periodX = v ;
758758
759759 if ( v > maxRange || v < minRange ) { // hide label if outside the range
760760 ticksOut [ i ] . text = '' ;
761- if ( i === 0 ) removedPreTick0Label = true ;
761+ removedPreTick0Label = true ;
762762 }
763763 }
764764 }
765765
766- if ( removedPreTick0Label && ticksOut . length > 1 ) {
767- // redo tick0 text
768- ax . _prevDateHead = '' ;
769- ticksOut [ 1 ] . text = axes . tickText ( ax , tickVals [ 1 ] . value ) . text ;
766+ if ( removedPreTick0Label ) {
767+ for ( i = 1 ; i < ticksOut . length ; i ++ ) {
768+ if ( ticksOut [ i ] . periodX <= maxRange && ticksOut [ i ] . periodX >= minRange ) {
769+ // redo first visible tick
770+ ax . _prevDateHead = '' ;
771+ ticksOut [ i ] . text = axes . tickText ( ax , tickVals [ i ] . value ) . text ;
772+ break ;
773+ }
774+ }
770775 }
771776
772777 ax . _inCalcTicks = false ;
0 commit comments