@@ -1269,19 +1269,19 @@ def get_majorticklocs(self):
12691269 def get_minorticklocs (self ):
12701270 """Return this Axis' minor tick locations in data coordinates."""
12711271 # Remove minor ticks duplicating major ticks.
1272- major_locs = self .major .locator ()
1273- minor_locs = self .minor .locator ()
1274- transform = self ._scale .get_transform ()
1275- tr_minor_locs = transform .transform (minor_locs )
1276- tr_major_locs = transform .transform (major_locs )
1277- lo , hi = sorted (transform .transform (self .get_view_interval ()))
1278- # Use the transformed view limits as scale. 1e-5 is the default rtol
1279- # for np.isclose.
1280- tol = (hi - lo ) * 1e-5
1272+ minor_locs = np .asarray (self .minor .locator ())
12811273 if self .remove_overlapping_locs :
1282- minor_locs = [
1283- loc for loc , tr_loc in zip (minor_locs , tr_minor_locs )
1284- if ~ np .isclose (tr_loc , tr_major_locs , atol = tol , rtol = 0 ).any ()]
1274+ major_locs = self .major .locator ()
1275+ transform = self ._scale .get_transform ()
1276+ tr_minor_locs = transform .transform (minor_locs )
1277+ tr_major_locs = transform .transform (major_locs )
1278+ lo , hi = sorted (transform .transform (self .get_view_interval ()))
1279+ # Use the transformed view limits as scale. 1e-5 is the default
1280+ # rtol for np.isclose.
1281+ tol = (hi - lo ) * 1e-5
1282+ mask = np .isclose (tr_minor_locs [:, None ], tr_major_locs [None , :],
1283+ atol = tol , rtol = 0 ).any (axis = 1 )
1284+ minor_locs = minor_locs [~ mask ]
12851285 return minor_locs
12861286
12871287 def get_ticklocs (self , * , minor = False ):
0 commit comments