@@ -380,6 +380,7 @@ proto.updateRadialAxis = function(fullLayout, polarLayout) {
380
380
var radialLayout = polarLayout . radialaxis ;
381
381
var a0 = mod ( polarLayout . sector [ 0 ] , 360 ) ;
382
382
var ax = _this . radialAxis ;
383
+ var hasRoomForIt = innerRadius < radius ;
383
384
384
385
_this . fillViewInitialKey ( 'radialaxis.angle' , radialLayout . angle ) ;
385
386
_this . fillViewInitialKey ( 'radialaxis.range' , ax . range . slice ( ) ) ;
@@ -410,8 +411,10 @@ proto.updateRadialAxis = function(fullLayout, polarLayout) {
410
411
_this . radialTickLayout = newTickLayout ;
411
412
}
412
413
413
- ax . setScale ( ) ;
414
- doTicksSingle ( gd , ax , true ) ;
414
+ if ( hasRoomForIt ) {
415
+ ax . setScale ( ) ;
416
+ doTicksSingle ( gd , ax , true ) ;
417
+ }
415
418
416
419
// stash 'actual' radial axis angle for drag handlers (in degrees)
417
420
var angle = _this . radialAxisAngle = _this . vangles ?
@@ -420,24 +423,31 @@ proto.updateRadialAxis = function(fullLayout, polarLayout) {
420
423
421
424
var trans = strTranslate ( cx , cy ) + strRotate ( - angle ) ;
422
425
423
- updateElement ( layers [ 'radial-axis' ] , radialLayout . showticklabels || radialLayout . ticks , {
424
- transform : trans
425
- } ) ;
426
+ updateElement (
427
+ layers [ 'radial-axis' ] ,
428
+ hasRoomForIt && ( radialLayout . showticklabels || radialLayout . ticks ) ,
429
+ { transform : trans }
430
+ ) ;
426
431
427
432
// move all grid paths to about circle center,
428
433
// undo individual grid lines translations
429
- updateElement ( layers [ 'radial-grid' ] , radialLayout . showgrid , {
430
- transform : strTranslate ( cx , cy )
431
- } )
432
- . selectAll ( 'path' ) . attr ( 'transform' , null ) ;
433
-
434
- updateElement ( layers [ 'radial-line' ] . select ( 'line' ) , radialLayout . showline , {
435
- x1 : innerRadius ,
436
- y1 : 0 ,
437
- x2 : radius ,
438
- y2 : 0 ,
439
- transform : trans
440
- } )
434
+ updateElement (
435
+ layers [ 'radial-grid' ] ,
436
+ hasRoomForIt && radialLayout . showgrid ,
437
+ { transform : strTranslate ( cx , cy ) }
438
+ ) . selectAll ( 'path' ) . attr ( 'transform' , null ) ;
439
+
440
+ updateElement (
441
+ layers [ 'radial-line' ] . select ( 'line' ) ,
442
+ hasRoomForIt && radialLayout . showline ,
443
+ {
444
+ x1 : innerRadius ,
445
+ y1 : 0 ,
446
+ x2 : radius ,
447
+ y2 : 0 ,
448
+ transform : trans
449
+ }
450
+ )
441
451
. attr ( 'stroke-width' , radialLayout . linewidth )
442
452
. call ( Color . stroke , radialLayout . linecolor ) ;
443
453
} ;
@@ -963,7 +973,10 @@ proto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {
963
973
964
974
var radialDrag = dragBox . makeRectDragger ( layers , className , 'crosshair' , - bl2 , - bl2 , bl , bl ) ;
965
975
var dragOpts = { element : radialDrag , gd : gd } ;
966
- d3 . select ( radialDrag ) . attr ( 'transform' , strTranslate ( tx , ty ) ) ;
976
+
977
+ updateElement ( d3 . select ( radialDrag ) , radialAxis . visible && innerRadius < radius , {
978
+ transform : strTranslate ( tx , ty )
979
+ } ) ;
967
980
968
981
// move function (either rotate or re-range flavor)
969
982
var moveFn2 ;
0 commit comments