@@ -55,7 +55,7 @@ def __init__(self,axes,spine_type,path,**kwargs):
5555 self .axis = None
5656
5757 self .set_zorder (2.5 )
58- self .set_transform (self .axes .transAxes ) # default transform
58+ self .set_transform (self .axes .transData ) # default transform
5959
6060 # Defer initial position determination. (Not much support for
6161 # non-rectangular axes is currently implemented, and this lets
@@ -82,6 +82,7 @@ def set_patch_circle(self,center,radius):
8282 self ._width = radius * 2
8383 self ._height = radius * 2
8484 self ._angle = 0
85+ self .set_transform (self .axes .transAxes ) # circle drawn on axes transform
8586
8687 def set_patch_line (self ):
8788 """set the spine to be linear"""
@@ -229,9 +230,9 @@ def set_position(self,position):
229230 t = self .get_spine_transform ()
230231 if self .spine_type in ['left' ,'right' ]:
231232 t2 = mtransforms .blended_transform_factory (t ,
232- self .axes .transAxes )
233+ self .axes .transData )
233234 elif self .spine_type in ['bottom' ,'top' ]:
234- t2 = mtransforms .blended_transform_factory (self .axes .transAxes ,
235+ t2 = mtransforms .blended_transform_factory (self .axes .transData ,
235236 t )
236237 self .set_transform (t2 )
237238
@@ -278,6 +279,19 @@ def get_spine_transform(self):
278279 else :
279280 raise ValueError ("unknown spine_transform type: %s" % what )
280281
282+ def set_bounds ( self , low , high ):
283+ v1 = self ._path .vertices [:] # copy
284+ assert v1 .shape == (2 ,2 ), 'unexpected vertices shape'
285+ if self .spine_type in ['left' ,'right' ]:
286+ v1 [0 ,1 ] = low
287+ v1 [1 ,1 ] = high
288+ elif self .spine_type in ['bottom' ,'top' ]:
289+ v1 [0 ,0 ] = low
290+ v1 [1 ,0 ] = high
291+ else :
292+ raise ValueError ('unable to set bounds for spine "%s"' % spine_type )
293+ self ._path .vertices = v1 # replace
294+
281295 @classmethod
282296 def linear_spine (cls , axes , spine_type , ** kwargs ):
283297 """
0 commit comments