@@ -981,7 +981,7 @@ def _set_color_source_vec(
981981 alpha : float = 1.0 ,
982982 table_name : str | None = None ,
983983 table_layer : str | None = None ,
984- render_type : Literal ["points" ] | None = None ,
984+ render_type : Literal ["points" , "labels" ] | None = None ,
985985 coordinate_system : str | None = None ,
986986) -> tuple [ArrayLike | pd .Series | None , ArrayLike , bool ]:
987987 if value_to_plot is None and element is not None :
@@ -1451,7 +1451,7 @@ def _get_categorical_color_mapping(
14511451 alpha : float = 1 ,
14521452 groups : list [str ] | str | None = None ,
14531453 palette : list [str ] | str | None = None ,
1454- render_type : Literal ["points" ] | None = None ,
1454+ render_type : Literal ["points" , "labels" ] | None = None ,
14551455) -> Mapping [str , str ]:
14561456 if not isinstance (color_source_vector , Categorical ):
14571457 raise TypeError (f"Expected `categories` to be a `Categorical`, but got { type (color_source_vector ).__name__ } " )
@@ -2138,15 +2138,15 @@ def _type_check_params(param_dict: dict[str, Any], element_type: str) -> dict[st
21382138 }:
21392139 if not isinstance (color , str | tuple | list ):
21402140 raise TypeError ("Parameter 'color' must be a string or a tuple/list of floats." )
2141- if element_type in {"shapes" , "points" }:
2141+ if element_type in {"shapes" , "points" , "labels" }:
21422142 if _is_color_like (color ):
21432143 logger .info ("Value for parameter 'color' appears to be a color, using it as such." )
21442144 param_dict ["col_for_color" ] = None
21452145 param_dict ["color" ] = Color (color )
21462146 if param_dict ["color" ].alpha_is_user_defined ():
21472147 if element_type == "points" and param_dict .get ("alpha" ) is None :
21482148 param_dict ["alpha" ] = param_dict ["color" ].get_alpha_as_float ()
2149- elif element_type == "shapes" and param_dict .get ("fill_alpha" ) is None :
2149+ elif element_type in { "shapes" , "labels" } and param_dict .get ("fill_alpha" ) is None :
21502150 param_dict ["fill_alpha" ] = param_dict ["color" ].get_alpha_as_float ()
21512151 else :
21522152 logger .info (
@@ -2158,7 +2158,7 @@ def _type_check_params(param_dict: dict[str, Any], element_type: str) -> dict[st
21582158 param_dict ["color" ] = None
21592159 else :
21602160 raise ValueError (f"{ color } is not a valid RGB(A) array and therefore can't be used as 'color' value." )
2161- elif "color" in param_dict and element_type != "labels " :
2161+ elif "color" in param_dict and element_type != "images " :
21622162 param_dict ["col_for_color" ] = None
21632163
21642164 outline_width = param_dict .get ("outline_width" )
@@ -2455,15 +2455,18 @@ def _validate_label_render_params(
24552455 element_params [el ]["table_layer" ] = param_dict ["table_layer" ]
24562456
24572457 element_params [el ]["table_name" ] = None
2458- element_params [el ]["color" ] = None
2459- color = param_dict ["color" ]
2460- if color is not None :
2461- color , table_name = _validate_col_for_column_table (sdata , el , color , param_dict ["table_name" ], labels = True )
2458+ element_params [el ]["color" ] = param_dict ["color" ] # literal Color or None
2459+ element_params [el ]["col_for_color" ] = None
2460+ if (col_for_color := param_dict ["col_for_color" ]) is not None :
2461+ col_for_color , table_name = _validate_col_for_column_table (
2462+ sdata , el , col_for_color , param_dict ["table_name" ], labels = True
2463+ )
24622464 element_params [el ]["table_name" ] = table_name
2463- element_params [el ]["color " ] = color
2465+ element_params [el ]["col_for_color " ] = col_for_color
24642466
2465- element_params [el ]["palette" ] = param_dict ["palette" ] if element_params [el ]["table_name" ] is not None else None
2466- element_params [el ]["groups" ] = param_dict ["groups" ] if element_params [el ]["table_name" ] is not None else None
2467+ has_col = element_params [el ]["col_for_color" ] is not None
2468+ element_params [el ]["palette" ] = param_dict ["palette" ] if has_col else None
2469+ element_params [el ]["groups" ] = param_dict ["groups" ] if has_col else None
24672470 element_params [el ]["colorbar" ] = param_dict ["colorbar" ]
24682471 element_params [el ]["colorbar_params" ] = param_dict ["colorbar_params" ]
24692472
0 commit comments