@@ -716,7 +716,7 @@ def checkListTuple(self, name, value):
716716 # Now make sure the items are either number or listofnumbers
717717 # for v in value:
718718 checkName (self , name , value )
719- if isinstance (value , list ) or isinstance ( value , tuple ):
719+ if isinstance (value , ( list , tuple ) ):
720720 return list (value )
721721 else :
722722 checkedRaise (
@@ -1745,13 +1745,37 @@ def _setpriority(self, value):
17451745priority = property (_getpriority , _setpriority )
17461746
17471747
1748- def _getX1 (self ):
1748+ @property
1749+ def arrow (self ):
1750+ """length of extension arrows"""
1751+ return self ._arrow
1752+
1753+
1754+ @arrow .setter
1755+ def arrow (self , value ):
1756+ self ._arrow = checkNumber (self , "arrow" , value , 0. , None )
1757+
1758+
1759+ @property
1760+ def offset (self ):
1761+ """offset position of legend labels from legend colorbar, in % of page (can be negative)"""
1762+ return self ._offset
1763+
1764+
1765+ @offset .setter
1766+ def offset (self , value ):
1767+ self ._offset = checkNumber (self , "offset" , value , - 1. , 1. )
1768+
1769+
1770+ @property
1771+ def x1 (self ):
1772+ """x1 position in % of page"""
17491773 return self ._x1
17501774
17511775
1752- def _setX1 (self , value ):
1776+ @x1 .setter
1777+ def x1 (self , value ):
17531778 self ._x1 = checkNumber (self , "x1" , value , 0. , 1. )
1754- x1 = property (_getX1 , _setX1 , "x1 position in % of page" )
17551779
17561780
17571781def _getX2 (self ):
@@ -1852,18 +1876,21 @@ def _setcolormap(self, value):
18521876colormap = property (_getcolormap , _setcolormap )
18531877
18541878
1855- def _getlevels (self ):
1879+ @property
1880+ def levels (self ):
1881+ """Sets the levels on a graphic method, optionally turns on/off extensions arrows"""
18561882 return self ._levels
18571883
18581884
1859- def _setlevels (self , value ):
1860- if value == ([1.0000000200408773e+20 , 1.0000000200408773e+20 ],):
1885+ @levels .setter
1886+ def levels (self , value ):
1887+ value = list (checkListTuple (self , 'levels' , value ))
1888+
1889+ if len (value ) == 2 and numpy .allclose (value , 1.e20 ):
18611890 self ._levels = value
18621891 return
18631892
1864- value = list (checkListTuple (self , 'levels' , value ))
1865-
1866- # Now make sure the items are either number or listofnumbers
1893+ # Now make sure the items are either number or list of numbers
18671894 for v in value :
18681895 if isNumber (v ):
18691896 continue
@@ -1891,17 +1918,23 @@ def _setlevels(self, value):
18911918 value [0 ], (list , tuple )) and len (value [0 ]) > 2 :
18921919 value = list (value [0 ])
18931920
1894- if (value [0 ] < - 9.9E19 ):
1921+ # We need to check for extensions
1922+ v = value [0 ]
1923+ if isinstance (v , (list , tuple )):
1924+ v = v [0 ]
1925+ if v < - 9.9E19 :
18951926 self ._ext_1 = True
18961927 else :
18971928 self ._ext_1 = False
18981929
1899- if (value [- 1 ] > 9.9E19 ):
1930+ v = value [- 1 ]
1931+ if isinstance (v , (list , tuple )):
1932+ v = v [- 1 ]
1933+ if v > 9.9E19 :
19001934 self ._ext_2 = True
19011935 else :
19021936 self ._ext_2 = False
19031937 self ._levels = list (value )
1904- levels = property (_getlevels , _setlevels )
19051938
19061939
19071940def _getlegend (self ):
@@ -1964,7 +1997,7 @@ def add_level_ext_1(self, ext_value):
19641997 if ext_value == "n" :
19651998 return self .levels
19661999
1967- # We may need to add extnsion
2000+ # We may need to add extension
19682001 if isinstance (self .levels , (list , tuple )):
19692002 if isinstance (self .levels , tuple ):
19702003 self .levels = list (self .levels )
@@ -2004,9 +2037,10 @@ def add_level_ext_2(self, ext_value):
20042037 if self .levels == [] or numpy .allclose (self .levels , 1.e20 ):
20052038 return self .levels # nothing to do
20062039 if ((ext_value == 'n' ) and self .ext_2 ): # remove extension
2007- if isinstance (self .levels [0 ], list ): # remove from tuple of lists
2040+ if isinstance (self .levels [- 1 ], list ): # remove from tuple of lists
20082041 if self .levels [- 1 ][1 ] > 9.e19 :
20092042 self .levels .pop (- 1 )
2043+ return
20102044 if isinstance (self .levels , (tuple , list )): # remove from list
20112045 ret_tup = []
20122046 for i in range (len (self .levels ) - 1 ):
@@ -2033,32 +2067,36 @@ def add_level_ext_2(self, ext_value):
20332067 return self .levels
20342068
20352069
2036- def _getext_1 (self ):
2070+ @property
2071+ def ext_1 (self ):
2072+ """Turns on extensions arrows for values before the first level"""
20372073 return self ._ext_1
20382074
20392075
2040- def _setext_1 (self , value ):
2076+ @ext_1 .setter
2077+ def ext_1 (self , value ):
20412078 do = checkExt (self , 'ext_1' , value )
20422079 if do :
20432080 add_level_ext_1 (self , 'y' )
20442081 else :
20452082 add_level_ext_1 (self , 'n' )
20462083 self ._ext_1 = do
2047- ext_1 = property (_getext_1 , _setext_1 )
20482084
20492085
2050- def _getext_2 (self ):
2086+ @property
2087+ def ext_2 (self ):
2088+ """Turns on extensions arrows for values after the last level"""
20512089 return self ._ext_2
20522090
20532091
2054- def _setext_2 (self , value ):
2092+ @ext_2 .setter
2093+ def ext_2 (self , value ):
20552094 do = checkExt (self , 'ext_2' , value )
20562095 if do :
20572096 add_level_ext_2 (self , 'y' )
20582097 else :
20592098 add_level_ext_2 (self , 'n' )
20602099 self ._ext_2 = do
2061- ext_2 = property (_getext_2 , _setext_2 )
20622100
20632101
20642102def _getwc (self ):
0 commit comments