@@ -726,24 +726,26 @@ proto.plot = function(sceneData, fullLayout, layout) {
726
726
}
727
727
728
728
var aspectmode = fullSceneLayout . aspectmode ;
729
-
730
- var axesScaleRatio = [ 1 , 1 , 1 ] ;
731
-
732
- // Compute axis scale per category
733
- for ( i = 0 ; i < 3 ; ++ i ) {
734
- axis = fullSceneLayout [ axisProperties [ i ] ] ;
735
- axisType = axis . type ;
736
- var axisRatio = axisTypeRatios [ axisType ] ;
737
- axesScaleRatio [ i ] = Math . pow ( axisRatio . acc , 1.0 / axisRatio . count ) / dataScale [ i ] ;
729
+ var axesScaleRatio ;
730
+ if ( aspectmode === 'auto' || aspectmode === 'data' ) {
731
+ axesScaleRatio = [ 1 , 1 , 1 ] ;
732
+
733
+ // Compute axis scale per category
734
+ for ( i = 0 ; i < 3 ; ++ i ) {
735
+ axis = fullSceneLayout [ axisProperties [ i ] ] ;
736
+ axisType = axis . type ;
737
+ var axisRatio = axisTypeRatios [ axisType ] ;
738
+ axesScaleRatio [ i ] = Math . pow ( axisRatio . acc , 1.0 / axisRatio . count ) / dataScale [ i ] ;
739
+ }
738
740
}
739
741
740
742
/*
741
743
* Dynamically set the aspect ratio depending on the users aspect settings
742
744
*/
743
- var axisAutoScaleFactor = 4 ;
744
745
var aspectRatio ;
745
-
746
746
if ( aspectmode === 'auto' ) {
747
+ var axisAutoScaleFactor = 4 ;
748
+
747
749
if ( Math . max . apply ( null , axesScaleRatio ) / Math . min . apply ( null , axesScaleRatio ) <= axisAutoScaleFactor ) {
748
750
/*
749
751
* USE DATA MODE WHEN AXIS RANGE DIMENSIONS ARE RELATIVELY EQUAL
0 commit comments