@@ -17,6 +17,8 @@ var Drawing = require('../../components/drawing');
17
17
var Axes = require ( './axes' ) ;
18
18
var axisRegex = / ( ( x | y ) ( [ 2 - 9 ] | [ 1 - 9 ] [ 0 - 9 ] + ) ? ) a x i s $ / ;
19
19
20
+ var LAST_TRANSLATION_RE = / t r a n s l a t e \( [ ^ ) ] * \) \s * $ / ;
21
+
20
22
module . exports = function transitionAxes ( gd , newLayout , transitionOpts , makeOnCompleteCallback ) {
21
23
var fullLayout = gd . _fullLayout ;
22
24
var axes = [ ] ;
@@ -149,7 +151,15 @@ module.exports = function transitionAxes(gd, newLayout, transitionOpts, makeOnCo
149
151
// scale to individual points to counteract the scale of the trace
150
152
// as a whole:
151
153
. selectAll ( '.points' ) . selectAll ( '.point' )
152
- . call ( Drawing . setPointGroupScale , 1 , 1 ) ;
154
+ . call ( Drawing . setPointGroupScale , 1 , 1 )
155
+
156
+ subplot . plot . selectAll ( '.points' ) . selectAll ( 'g' )
157
+ . each ( function ( ) {
158
+ var el = d3 . select ( this ) ;
159
+ var existingTransform = el . attr ( 'transform' ) . match ( LAST_TRANSLATION_RE ) ;
160
+ el . attr ( 'transform' , existingTransform || '' ) ;
161
+ } ) ;
162
+
153
163
154
164
}
155
165
@@ -229,6 +239,27 @@ module.exports = function transitionAxes(gd, newLayout, transitionOpts, makeOnCo
229
239
. selectAll ( '.points' ) . selectAll ( '.point' )
230
240
. call ( Drawing . setPointGroupScale , 1 / xScaleFactor , 1 / yScaleFactor ) ;
231
241
242
+ subplot . plot . selectAll ( '.points' ) . selectAll ( 'g' )
243
+ . each ( function ( ) {
244
+ var el = d3 . select ( this ) ;
245
+ var text = el . select ( 'text' ) ;
246
+ var x = parseFloat ( text . attr ( 'x' ) ) ;
247
+ var y = parseFloat ( text . attr ( 'y' ) ) ;
248
+
249
+ var existingTransform = el . attr ( 'transform' ) . match ( LAST_TRANSLATION_RE ) ;
250
+
251
+ var transforms = [
252
+ 'translate(' + x + ',' + y + ')' ,
253
+ 'scale(' + ( 1 / xScaleFactor ) + ',' + ( 1 / yScaleFactor ) + ')' ,
254
+ 'translate(' + ( - x ) + ',' + ( - y ) + ')' ,
255
+ ] ;
256
+
257
+ if ( existingTransform ) {
258
+ transforms . push ( existingTransform ) ;
259
+ }
260
+
261
+ el . attr ( 'transform' , transforms . join ( ' ' ) ) ;
262
+ } ) ;
232
263
}
233
264
234
265
var onComplete ;
0 commit comments