@@ -34,10 +34,22 @@ def __init__(self, grid_helper, side, nth_coord_ticks=None):
3434 self .nth_coord_ticks = nth_coord_ticks
3535
3636 self .side = side
37+ self ._limits_inverted = False
3738
3839 def update_lim (self , axes ):
3940 self .grid_helper .update_lim (axes )
4041
42+ if self .nth_coord == 0 :
43+ xy1 , xy2 = axes .get_ylim ()
44+ else :
45+ xy1 , xy2 = axes .get_xlim ()
46+
47+ if xy1 > xy2 :
48+ self ._limits_inverted = True
49+ else :
50+ self ._limits_inverted = False
51+
52+
4153 def change_tick_coord (self , coord_number = None ):
4254 if coord_number is None :
4355 self .nth_coord_ticks = 1 - self .nth_coord_ticks
@@ -55,14 +67,21 @@ def get_tick_iterators(self, axes):
5567
5668 g = self .grid_helper
5769
58- ti1 = g .get_tick_iterator (self .nth_coord_ticks , self .side )
59- ti2 = g .get_tick_iterator (1 - self .nth_coord_ticks , self .side , minor = True )
70+ if self ._limits_inverted :
71+ side = {"left" :"right" ,"right" :"left" ,
72+ "top" :"bottom" , "bottom" :"top" }[self .side ]
73+ else :
74+ side = self .side
75+
76+ ti1 = g .get_tick_iterator (self .nth_coord_ticks , side )
77+ ti2 = g .get_tick_iterator (1 - self .nth_coord_ticks , side , minor = True )
6078
6179 #ti2 = g.get_tick_iterator(1-self.nth_coord_ticks, self.side, minor=True)
6280
6381 return chain (ti1 , ti2 ), iter ([])
6482
6583
84+
6685class FloatingAxisArtistHelper (AxisArtistHelper .Floating ):
6786
6887 def __init__ (self , grid_helper , nth_coord , value , axis_direction = None ):
0 commit comments