Skip to content

Commit 675c668

Browse files
committed
Refactor trace-specific color handling in apply_default_cascade
- Make constructor parameter required (was optional with None default) - Refactor trace-specific color extraction to only assign when colors are found - Improve code clarity by checking for non-empty color list before assignment
1 parent 74543f3 commit 675c668

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

plotly/express/_core.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,7 @@ def one_group(x):
10031003
return ""
10041004

10051005

1006-
def apply_default_cascade(args, constructor=None):
1006+
def apply_default_cascade(args, constructor):
10071007
# first we apply px.defaults to unspecified args
10081008

10091009
for param in defaults.__slots__:
@@ -1047,12 +1047,16 @@ def apply_default_cascade(args, constructor=None):
10471047
else:
10481048
trace_type = constructor().type
10491049
if trace_data_list := getattr(args["template"].data, trace_type, None):
1050-
args["color_discrete_sequence"] = [
1050+
trace_specific_colors = [
10511051
trace_data.marker.color
10521052
for trace_data in trace_data_list
10531053
if hasattr(trace_data, "marker")
10541054
and hasattr(trace_data.marker, "color")
10551055
]
1056+
# If template contains at least one color for this trace type, assign to color_discrete_sequence
1057+
if any(trace_specific_colors):
1058+
args["color_discrete_sequence"] = trace_specific_colors
1059+
10561060
if not args["color_discrete_sequence"] or not any(
10571061
args["color_discrete_sequence"]
10581062
):

0 commit comments

Comments
 (0)