@@ -365,6 +365,33 @@ def test_cursor_data():
365
365
assert im .get_cursor_data (event ) == 44
366
366
367
367
368
+ @pytest .mark .parametrize ("xy, data" , [
369
+ [[0.5 , 0.5 ], 0 + 0 ],
370
+ [[0.5 , 1.5 ], 0 + 1 ],
371
+ [[4.5 , 0.5 ], 16 + 0 ],
372
+ [[9.5 , 2.5 ], 81 + 4 ]
373
+ ]
374
+ )
375
+ def test_cursor_data_nonuniform (xy , data ):
376
+ from matplotlib .backend_bases import MouseEvent
377
+
378
+ # Non-linear set of x-values
379
+ x = np .array ([0 , 1 , 4 , 9 , 16 ])
380
+ y = np .array ([0 , 1 , 2 , 3 , 4 ])
381
+ z = x [np .newaxis , :]** 2 + y [:, np .newaxis ]** 2
382
+
383
+ fig , ax = plt .subplots ()
384
+ im = NonUniformImage (ax , extent = (x .min (), x .max (), y .min (), y .max ()))
385
+ im .set_data (x , y , z )
386
+ ax .add_image (im )
387
+ ax .set_xlim (x .min (), x .max ())
388
+ ax .set_ylim (y .min (), y .max ())
389
+
390
+ xdisp , ydisp = ax .transData .transform (xy )
391
+ event = MouseEvent ('motion_notify_event' , fig .canvas , xdisp , ydisp )
392
+ assert im .get_cursor_data (event ) == data , (im .get_cursor_data (event ), data )
393
+
394
+
368
395
@pytest .mark .parametrize (
369
396
"data, text" , [
370
397
([[10001 , 10000 ]], "[10001.000]" ),
0 commit comments