@@ -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 :
@@ -1454,7 +1454,7 @@ def _get_categorical_color_mapping(
14541454 alpha : float = 1 ,
14551455 groups : list [str ] | str | None = None ,
14561456 palette : list [str ] | str | None = None ,
1457- render_type : Literal ["points" ] | None = None ,
1457+ render_type : Literal ["points" , "labels" ] | None = None ,
14581458) -> Mapping [str , str ]:
14591459 if not isinstance (color_source_vector , Categorical ):
14601460 raise TypeError (f"Expected `categories` to be a `Categorical`, but got { type (color_source_vector ).__name__ } " )
@@ -2145,15 +2145,15 @@ def _type_check_params(param_dict: dict[str, Any], element_type: str) -> dict[st
21452145 }:
21462146 if not isinstance (color , str | tuple | list ):
21472147 raise TypeError ("Parameter 'color' must be a string or a tuple/list of floats." )
2148- if element_type in {"shapes" , "points" }:
2148+ if element_type in {"shapes" , "points" , "labels" }:
21492149 if _is_color_like (color ):
21502150 logger .info ("Value for parameter 'color' appears to be a color, using it as such." )
21512151 param_dict ["col_for_color" ] = None
21522152 param_dict ["color" ] = Color (color )
21532153 if param_dict ["color" ].alpha_is_user_defined ():
21542154 if element_type == "points" and param_dict .get ("alpha" ) is None :
21552155 param_dict ["alpha" ] = param_dict ["color" ].get_alpha_as_float ()
2156- elif element_type == "shapes" and param_dict .get ("fill_alpha" ) is None :
2156+ elif element_type in { "shapes" , "labels" } and param_dict .get ("fill_alpha" ) is None :
21572157 param_dict ["fill_alpha" ] = param_dict ["color" ].get_alpha_as_float ()
21582158 else :
21592159 logger .info (
@@ -2165,7 +2165,7 @@ def _type_check_params(param_dict: dict[str, Any], element_type: str) -> dict[st
21652165 param_dict ["color" ] = None
21662166 else :
21672167 raise ValueError (f"{ color } is not a valid RGB(A) array and therefore can't be used as 'color' value." )
2168- elif "color" in param_dict and element_type != "labels " :
2168+ elif "color" in param_dict and element_type != "images " :
21692169 param_dict ["col_for_color" ] = None
21702170
21712171 outline_width = param_dict .get ("outline_width" )
@@ -2462,15 +2462,18 @@ def _validate_label_render_params(
24622462 element_params [el ]["table_layer" ] = param_dict ["table_layer" ]
24632463
24642464 element_params [el ]["table_name" ] = None
2465- element_params [el ]["color" ] = None
2466- color = param_dict ["color" ]
2467- if color is not None :
2468- color , table_name = _validate_col_for_column_table (sdata , el , color , param_dict ["table_name" ], labels = True )
2465+ element_params [el ]["color" ] = param_dict ["color" ] # literal Color or None
2466+ element_params [el ]["col_for_color" ] = None
2467+ if (col_for_color := param_dict ["col_for_color" ]) is not None :
2468+ col_for_color , table_name = _validate_col_for_column_table (
2469+ sdata , el , col_for_color , param_dict ["table_name" ], labels = True
2470+ )
24692471 element_params [el ]["table_name" ] = table_name
2470- element_params [el ]["color " ] = color
2472+ element_params [el ]["col_for_color " ] = col_for_color
24712473
2472- element_params [el ]["palette" ] = param_dict ["palette" ] if element_params [el ]["table_name" ] is not None else None
2473- element_params [el ]["groups" ] = param_dict ["groups" ] if element_params [el ]["table_name" ] is not None else None
2474+ has_col = element_params [el ]["col_for_color" ] is not None
2475+ element_params [el ]["palette" ] = param_dict ["palette" ] if has_col else None
2476+ element_params [el ]["groups" ] = param_dict ["groups" ] if has_col else None
24742477 element_params [el ]["colorbar" ] = param_dict ["colorbar" ]
24752478 element_params [el ]["colorbar_params" ] = param_dict ["colorbar_params" ]
24762479
0 commit comments