@@ -628,7 +628,7 @@ fx.getClosest = function(cd, distfn, pointData) {
628
628
} ;
629
629
630
630
function cleanPoint ( d , hovermode ) {
631
- d . posref = hovermode === 'y' ? ( d . x0 + d . x1 ) / 2 : ( d . y0 + d . y1 ) / 2 ;
631
+ d . posref = hovermode === 'y' ? ( d . x0 + d . x1 ) / 2 : ( d . y0 + d . y1 ) / 2 ;
632
632
633
633
// then constrain all the positions to be on the plot
634
634
d . x0 = Lib . constrain ( d . x0 , 0 , d . xa . _length ) ;
@@ -639,36 +639,36 @@ function cleanPoint(d, hovermode) {
639
639
// and convert the x and y label values into objects
640
640
// formatted as text, with font info
641
641
var logOffScale ;
642
- if ( d . xLabelVal !== undefined ) {
643
- logOffScale = ( d . xa . type === 'log' && d . xLabelVal <= 0 ) ;
642
+ if ( d . xLabelVal !== undefined ) {
643
+ logOffScale = ( d . xa . type === 'log' && d . xLabelVal <= 0 ) ;
644
644
var xLabelObj = Axes . tickText ( d . xa ,
645
645
d . xa . c2l ( logOffScale ? - d . xLabelVal : d . xLabelVal ) , 'hover' ) ;
646
646
if ( logOffScale ) {
647
- if ( d . xLabelVal === 0 ) d . xLabel = '0' ;
647
+ if ( d . xLabelVal === 0 ) d . xLabel = '0' ;
648
648
else d . xLabel = '-' + xLabelObj . text ;
649
649
}
650
650
else d . xLabel = xLabelObj . text ;
651
651
d . xVal = d . xa . c2d ( d . xLabelVal ) ;
652
652
}
653
653
654
- if ( d . yLabelVal !== undefined ) {
655
- logOffScale = ( d . ya . type === 'log' && d . yLabelVal <= 0 ) ;
654
+ if ( d . yLabelVal !== undefined ) {
655
+ logOffScale = ( d . ya . type === 'log' && d . yLabelVal <= 0 ) ;
656
656
var yLabelObj = Axes . tickText ( d . ya ,
657
657
d . ya . c2l ( logOffScale ? - d . yLabelVal : d . yLabelVal ) , 'hover' ) ;
658
658
if ( logOffScale ) {
659
- if ( d . yLabelVal === 0 ) d . yLabel = '0' ;
659
+ if ( d . yLabelVal === 0 ) d . yLabel = '0' ;
660
660
else d . yLabel = '-' + yLabelObj . text ;
661
661
}
662
662
else d . yLabel = yLabelObj . text ;
663
663
d . yVal = d . ya . c2d ( d . yLabelVal ) ;
664
664
}
665
665
666
- if ( d . zLabelVal !== undefined ) d . zLabel = String ( d . zLabelVal ) ;
666
+ if ( d . zLabelVal !== undefined ) d . zLabel = String ( d . zLabelVal ) ;
667
667
668
668
// for box means and error bars, add the range to the label
669
- if ( d . xerr !== undefined ) {
669
+ if ( ! isNaN ( d . xerr ) && ! ( d . xa . type === 'log' && d . xerr <= 0 ) ) {
670
670
var xeText = Axes . tickText ( d . xa , d . xa . c2l ( d . xerr ) , 'hover' ) . text ;
671
- if ( d . xerrneg !== undefined ) {
671
+ if ( d . xerrneg !== undefined ) {
672
672
d . xLabel += ' +' + xeText + ' / -' +
673
673
Axes . tickText ( d . xa , d . xa . c2l ( d . xerrneg ) , 'hover' ) . text ;
674
674
}
@@ -677,27 +677,27 @@ function cleanPoint(d, hovermode) {
677
677
// small distance penalty for error bars, so that if there are
678
678
// traces with errors and some without, the error bar label will
679
679
// hoist up to the point
680
- if ( hovermode === 'x' ) d . distance += 1 ;
680
+ if ( hovermode === 'x' ) d . distance += 1 ;
681
681
}
682
- if ( d . yerr !== undefined ) {
682
+ if ( ! isNaN ( d . yerr ) && ! ( d . ya . type === 'log' && d . yerr <= 0 ) ) {
683
683
var yeText = Axes . tickText ( d . ya , d . ya . c2l ( d . yerr ) , 'hover' ) . text ;
684
- if ( d . yerrneg !== undefined ) {
684
+ if ( d . yerrneg !== undefined ) {
685
685
d . yLabel += ' +' + yeText + ' / -' +
686
686
Axes . tickText ( d . ya , d . ya . c2l ( d . yerrneg ) , 'hover' ) . text ;
687
687
}
688
688
else d . yLabel += ' ± ' + yeText ;
689
689
690
- if ( hovermode === 'y' ) d . distance += 1 ;
690
+ if ( hovermode === 'y' ) d . distance += 1 ;
691
691
}
692
692
693
693
var infomode = d . trace . hoverinfo ;
694
- if ( infomode !== 'all' ) {
694
+ if ( infomode !== 'all' ) {
695
695
infomode = infomode . split ( '+' ) ;
696
- if ( infomode . indexOf ( 'x' ) === - 1 ) d . xLabel = undefined ;
697
- if ( infomode . indexOf ( 'y' ) === - 1 ) d . yLabel = undefined ;
698
- if ( infomode . indexOf ( 'z' ) === - 1 ) d . zLabel = undefined ;
699
- if ( infomode . indexOf ( 'text' ) === - 1 ) d . text = undefined ;
700
- if ( infomode . indexOf ( 'name' ) === - 1 ) d . name = undefined ;
696
+ if ( infomode . indexOf ( 'x' ) === - 1 ) d . xLabel = undefined ;
697
+ if ( infomode . indexOf ( 'y' ) === - 1 ) d . yLabel = undefined ;
698
+ if ( infomode . indexOf ( 'z' ) === - 1 ) d . zLabel = undefined ;
699
+ if ( infomode . indexOf ( 'text' ) === - 1 ) d . text = undefined ;
700
+ if ( infomode . indexOf ( 'name' ) === - 1 ) d . name = undefined ;
701
701
}
702
702
return d ;
703
703
}
0 commit comments