@@ -189,6 +189,23 @@ def __init__(
189189        self .reversescale  =  reversescale 
190190        self .font_colors  =  font_colors 
191191
192+         if  np  and  isinstance (self .z , np .ndarray ):
193+             self .zmin  =  np .amin (self .z )
194+             self .zmax  =  np .amax (self .z )
195+         else :
196+             self .zmin  =  min ([v  for  row  in  self .z  for  v  in  row ])
197+             self .zmax  =  max ([v  for  row  in  self .z  for  v  in  row ])
198+ 
199+         if  "zmin"  in  kwargs :
200+             self .zmin  =  kwargs ["zmin" ]
201+         if  "zmax"  in  kwargs :
202+             self .zmax  =  kwargs ["zmax" ]
203+ 
204+         self .zmid  =  (self .zmax  +  self .zmin ) /  2 
205+ 
206+         if  "zmid"  in  kwargs :
207+             self .zmin  =  kwargs ["zmid" ]
208+ 
192209    def  get_text_color (self ):
193210        """ 
194211        Get font color for annotations. 
@@ -264,21 +281,6 @@ def get_text_color(self):
264281            max_text_color  =  black 
265282        return  min_text_color , max_text_color 
266283
267-     def  get_z_mid (self ):
268-         """ 
269-         Get the mid value of z matrix 
270- 
271-         :rtype (float) z_avg: average val from z matrix 
272-         """ 
273-         if  np  and  isinstance (self .z , np .ndarray ):
274-             z_min  =  np .amin (self .z )
275-             z_max  =  np .amax (self .z )
276-         else :
277-             z_min  =  min ([v  for  row  in  self .z  for  v  in  row ])
278-             z_max  =  max ([v  for  row  in  self .z  for  v  in  row ])
279-         z_mid  =  (z_max  +  z_min ) /  2 
280-         return  z_mid 
281- 
282284    def  make_annotations (self ):
283285        """ 
284286        Get annotations for each cell of the heatmap with graph_objs.Annotation 
@@ -287,11 +289,10 @@ def make_annotations(self):
287289            the heatmap 
288290        """ 
289291        min_text_color , max_text_color  =  _AnnotatedHeatmap .get_text_color (self )
290-         z_mid  =  _AnnotatedHeatmap .get_z_mid (self )
291292        annotations  =  []
292293        for  n , row  in  enumerate (self .z ):
293294            for  m , val  in  enumerate (row ):
294-                 font_color  =  min_text_color  if  val  <  z_mid  else  max_text_color 
295+                 font_color  =  min_text_color  if  val  <  self . zmid  else  max_text_color 
295296                annotations .append (
296297                    graph_objs .layout .Annotation (
297298                        text = str (self .annotation_text [n ][m ]),
0 commit comments