@@ -117,7 +117,7 @@ def changed(self):
117117 self ._imcache = None
118118 cm .ScalarMappable .changed (self )
119119
120- def make_image (self , flipy ):
120+ def make_image (self ):
121121 if self ._A is not None :
122122 if self ._imcache is None :
123123 if self ._A .typecode () == UInt8 :
@@ -133,6 +133,10 @@ def make_image(self, flipy):
133133
134134
135135 bg = colorConverter .to_rgba (self .axes .get_frame ().get_facecolor (), 0 )
136+
137+ if self .origin == 'upper' :
138+ im .flipud_in ()
139+
136140 im .set_bg ( * bg )
137141 im .is_grayscale = (self .cmap .name == "gray" and
138142 len (self ._A .shape ) == 2 )
@@ -159,10 +163,13 @@ def make_image(self, flipy):
159163
160164 # the viewport translation
161165 tx = (xmin - self .axes .viewLim .xmin ())/ dxintv * numcols
162- if flipy :
163- ty = - (ymax - self .axes .viewLim .ymax ())/ dyintv * numrows
164- else :
165- ty = (ymin - self .axes .viewLim .ymin ())/ dyintv * numrows
166+
167+
168+ #if flipy:
169+ # ty = -(ymax-self.axes.viewLim.ymax())/dyintv * numrows
170+ #else:
171+ # ty = (ymin-self.axes.viewLim.ymin())/dyintv * numrows
172+ ty = (ymin - self .axes .viewLim .ymin ())/ dyintv * numrows
166173
167174 l , b , widthDisplay , heightDisplay = self .axes .bbox .get_bounds ()
168175
@@ -186,13 +193,16 @@ def make_image(self, flipy):
186193 #print tx, ty, sx, sy, rx, ry, widthDisplay, heightDisplay
187194 im .resize (int (widthDisplay + 0.5 ), int (heightDisplay + 0.5 ),
188195 norm = self ._filternorm , radius = self ._filterrad )
196+
197+ if self .origin == 'upper' :
198+ im .flipud_in ()
199+
189200 return im
190201
191- def draw (self , renderer , * args , ** kwargs ):
202+ def __draw (self , renderer , * args , ** kwargs ):
192203 if not self .get_visible (): return
193204 isUpper = self .origin == 'upper'
194205 flipy = renderer .flipy ()
195-
196206 im = self .make_image (isUpper )
197207 l , b , widthDisplay , heightDisplay = self .axes .bbox .get_bounds ()
198208 if isUpper :
@@ -204,6 +214,12 @@ def draw(self, renderer, *args, **kwargs):
204214 oy = b
205215 renderer .draw_image (l , oy , im , self .origin , self .axes .bbox )
206216
217+ def draw (self , renderer , * args , ** kwargs ):
218+ if not self .get_visible (): return
219+ im = self .make_image ()
220+ l , b , widthDisplay , heightDisplay = self .axes .bbox .get_bounds ()
221+ renderer .draw_image (l , b , im , self .axes .bbox )
222+
207223 def write_png (self , fname ):
208224 """Write the image to png file with fname"""
209225 im = self .make_image (False )
0 commit comments