@@ -208,6 +208,56 @@ test_that("shape paper repositioning", {
208
208
expect_equal(y1 , rep(0.75 , 2 ))
209
209
expect_equal(xref , rep(" paper" , 2 ))
210
210
expect_equal(yref , rep(" paper" , 2 ))
211
+
212
+ # now with a fixed height/width
213
+ p1 <- plot_ly(mtcars ) %> %
214
+ layout(
215
+ shapes = ~ list (
216
+ type = " rect" ,
217
+ x0 = 0.25 ,
218
+ x1 = 0.75 ,
219
+ xref = " paper" ,
220
+ y0 = 0 ,
221
+ y1 = 30 ,
222
+ yanchor = 0.5 ,
223
+ ysizemode = " pixel" ,
224
+ yref = " paper" ,
225
+ fillcolor = " red"
226
+ )
227
+ )
228
+ p2 <- plot_ly(mtcars ) %> %
229
+ layout(
230
+ shapes = ~ list (
231
+ type = " rect" ,
232
+ y0 = 0.25 ,
233
+ y1 = 0.75 ,
234
+ yref = " paper" ,
235
+ x0 = 0 ,
236
+ x1 = 30 ,
237
+ xanchor = 0.5 ,
238
+ xsizemode = " pixel" ,
239
+ xref = " paper" ,
240
+ line = list (color = " blue" )
241
+ )
242
+ )
243
+
244
+ s <- subplot(p1 , p2 )
245
+ shapes <- expect_doppelganger_built(s , " subplot-reposition-shape-fixed" )$ layout $ shapes
246
+ expect_length(shapes , 2 )
247
+
248
+ xanchor <- lapply(shapes , " [[" , " xanchor" )[[2 ]]
249
+ yanchor <- lapply(shapes , " [[" , " yanchor" )[[1 ]]
250
+ x0 <- sapply(shapes , " [[" , " x0" )
251
+ x1 <- sapply(shapes , " [[" , " x1" )
252
+ y0 <- sapply(shapes , " [[" , " y0" )
253
+ y1 <- sapply(shapes , " [[" , " y1" )
254
+
255
+ expect_equal(xanchor , 0.76 )
256
+ expect_equal(yanchor , 0.5 )
257
+ expect_equal(x0 , c(0.12 , 0 ))
258
+ expect_equal(x1 , c(0.36 , 30 ))
259
+ expect_equal(y0 , c(0 , 0.25 ))
260
+ expect_equal(y1 , c(30 , 0.75 ))
211
261
})
212
262
213
263
0 commit comments