@@ -1422,7 +1422,7 @@ def release_zoom(self, event):
14221422 self .draw ()
14231423 return
14241424
1425- xmin , ymin , xmax , ymax = lim .lbrt
1425+ x0 , y0 , x1 , y1 = lim .extents
14261426
14271427 # zoom to rect
14281428 inverse = a .transData .inverted ()
@@ -1432,49 +1432,49 @@ def release_zoom(self, event):
14321432 Ymin ,Ymax = a .get_ylim ()
14331433
14341434 if Xmin < Xmax :
1435- if x < lastx : xmin , xmax = x , lastx
1436- else : xmin , xmax = lastx , x
1437- if xmin < Xmin : xmin = Xmin
1438- if xmax > Xmax : xmax = Xmax
1435+ if x < lastx : x0 , x1 = x , lastx
1436+ else : x0 , x1 = lastx , x
1437+ if x0 < Xmin : x0 = Xmin
1438+ if x1 > Xmax : x1 = Xmax
14391439 else :
1440- if x > lastx : xmin , xmax = x , lastx
1441- else : xmin , xmax = lastx , x
1442- if xmin > Xmin : xmin = Xmin
1443- if xmax < Xmax : xmax = Xmax
1440+ if x > lastx : x0 , x1 = x , lastx
1441+ else : x0 , x1 = lastx , x
1442+ if x0 > Xmin : x0 = Xmin
1443+ if x1 < Xmax : x1 = Xmax
14441444
14451445 if Ymin < Ymax :
1446- if y < lasty : ymin , ymax = y , lasty
1447- else : ymin , ymax = lasty , y
1448- if ymin < Ymin : ymin = Ymin
1449- if ymax > Ymax : ymax = Ymax
1446+ if y < lasty : y0 , y1 = y , lasty
1447+ else : y0 , y1 = lasty , y
1448+ if y0 < Ymin : y0 = Ymin
1449+ if y1 > Ymax : y1 = Ymax
14501450 else :
1451- if y > lasty : ymin , ymax = y , lasty
1452- else : ymin , ymax = lasty , y
1453- if ymin > Ymin : ymin = Ymin
1454- if ymax < Ymax : ymax = Ymax
1451+ if y > lasty : y0 , y1 = y , lasty
1452+ else : y0 , y1 = lasty , y
1453+ if y0 > Ymin : y0 = Ymin
1454+ if y1 < Ymax : y1 = Ymax
14551455
14561456 if self ._button_pressed == 1 :
1457- a .set_xlim ((xmin , xmax ))
1458- a .set_ylim ((ymin , ymax ))
1457+ a .set_xlim ((x0 , x1 ))
1458+ a .set_ylim ((y0 , y1 ))
14591459 elif self ._button_pressed == 3 :
14601460 if a .get_xscale ()== 'log' :
1461- alpha = npy .log (Xmax / Xmin )/ npy .log (xmax / xmin )
1462- x1 = pow (Xmin / xmin ,alpha )* Xmin
1463- x2 = pow (Xmax / xmin ,alpha )* Xmin
1461+ alpha = npy .log (Xmax / Xmin )/ npy .log (x1 / x0 )
1462+ rx1 = pow (Xmin / x0 ,alpha )* Xmin
1463+ x2 = pow (Xmax / x0 ,alpha )* Xmin
14641464 else :
1465- alpha = (Xmax - Xmin )/ (xmax - xmin )
1466- x1 = alpha * (Xmin - xmin )+ Xmin
1467- x2 = alpha * (Xmax - xmin )+ Xmin
1465+ alpha = (Xmax - Xmin )/ (x1 - x0 )
1466+ rx1 = alpha * (Xmin - x0 )+ Xmin
1467+ x2 = alpha * (Xmax - x0 )+ Xmin
14681468 if a .get_yscale ()== 'log' :
1469- alpha = npy .log (Ymax / Ymin )/ npy .log (ymax / ymin )
1470- y1 = pow (Ymin / ymin ,alpha )* Ymin
1471- y2 = pow (Ymax / ymin ,alpha )* Ymin
1469+ alpha = npy .log (Ymax / Ymin )/ npy .log (y1 / y0 )
1470+ ry1 = pow (Ymin / y0 ,alpha )* Ymin
1471+ ry2 = pow (Ymax / y0 ,alpha )* Ymin
14721472 else :
1473- alpha = (Ymax - Ymin )/ (ymax - ymin )
1474- y1 = alpha * (Ymin - ymin )+ Ymin
1475- y2 = alpha * (Ymax - ymin )+ Ymin
1476- a .set_xlim ((x1 , x2 ))
1477- a .set_ylim ((y1 , y2 ))
1473+ alpha = (Ymax - Ymin )/ (y1 - y0 )
1474+ ry1 = alpha * (Ymin - y0 )+ Ymin
1475+ ry2 = alpha * (Ymax - y0 )+ Ymin
1476+ a .set_xlim ((rx1 , rx2 ))
1477+ a .set_ylim ((ry1 , ry2 ))
14781478
14791479 self .draw ()
14801480 self ._xypress = None
0 commit comments