@@ -890,26 +890,19 @@ def set_size_inches(self, w, h=None, forward=True):
890
890
--------
891
891
matplotlib.Figure.get_size_inches
892
892
"""
893
-
894
- # the width and height have been passed in as a tuple to the first
895
- # argument, so unpack them
896
- if h is None :
893
+ if h is None : # Got called with a single pair as argument.
897
894
w , h = w
898
- size = w , h
899
- if not np .isfinite (size ).all () or (np . array ( size ) <= 0 ).any ():
895
+ size = np . array ([ w , h ])
896
+ if not np .isfinite (size ).all () or (size <= 0 ).any ():
900
897
raise ValueError (f'figure size must be positive finite not { size } ' )
901
- self .bbox_inches .p1 = w , h
902
-
898
+ self .bbox_inches .p1 = size
903
899
if forward :
904
900
canvas = getattr (self , 'canvas' )
905
901
if canvas is not None :
906
- ratio = getattr (self .canvas , '_dpi_ratio' , 1 )
907
- dpival = self .dpi / ratio
908
- canvasw = w * dpival
909
- canvash = h * dpival
910
- manager = getattr (self .canvas , 'manager' , None )
902
+ dpi_ratio = getattr (canvas , '_dpi_ratio' , 1 )
903
+ manager = getattr (canvas , 'manager' , None )
911
904
if manager is not None :
912
- manager .resize (int ( canvasw ), int ( canvash ))
905
+ manager .resize (* ( size * self . dpi / dpi_ratio ). astype ( int ))
913
906
self .stale = True
914
907
915
908
def get_size_inches (self ):
0 commit comments