@@ -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
} ;
@@ -802,7 +812,8 @@ proto.updateMainDrag = function(fullLayout) {
802
812
var cpath ;
803
813
804
814
if ( clampAndSetR0R1 ( rr0 , rr1 ) ) {
805
- path1 = path0 + _this . pathSector ( r1 ) + _this . pathSector ( r0 ) ;
815
+ path1 = path0 + _this . pathSector ( r1 ) ;
816
+ if ( r0 ) path1 += _this . pathSector ( r0 ) ;
806
817
// keep 'starting' angle
807
818
cpath = pathCorner ( r0 , a0 ) + pathCorner ( r1 , a0 ) ;
808
819
}
@@ -827,7 +838,8 @@ proto.updateMainDrag = function(fullLayout) {
827
838
var cpath ;
828
839
829
840
if ( clampAndSetR0R1 ( rr0 , rr1 ) ) {
830
- path1 = path0 + _this . pathSector ( r1 ) + _this . pathSector ( r0 ) ;
841
+ path1 = path0 + _this . pathSector ( r1 ) ;
842
+ if ( r0 ) path1 += _this . pathSector ( r0 ) ;
831
843
// keep 'starting' angle here too
832
844
cpath = [
833
845
pathCornerForPolygons ( r0 , vangles0 [ 0 ] , vangles0 [ 1 ] ) ,
@@ -963,7 +975,10 @@ proto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {
963
975
964
976
var radialDrag = dragBox . makeRectDragger ( layers , className , 'crosshair' , - bl2 , - bl2 , bl , bl ) ;
965
977
var dragOpts = { element : radialDrag , gd : gd } ;
966
- d3 . select ( radialDrag ) . attr ( 'transform' , strTranslate ( tx , ty ) ) ;
978
+
979
+ updateElement ( d3 . select ( radialDrag ) , radialAxis . visible && innerRadius < radius , {
980
+ transform : strTranslate ( tx , ty )
981
+ } ) ;
967
982
968
983
// move function (either rotate or re-range flavor)
969
984
var moveFn2 ;
0 commit comments