@@ -794,6 +794,20 @@ def _construct_hf_data_dict(
794794 "hovertext" : dc .hovertext ,
795795 }
796796
797+ @staticmethod
798+ def _add_trace_to_add_traces_kwargs (kwargs : dict ) -> dict :
799+ """Convert the `add_trace` kwargs to the `add_traces` kwargs."""
800+ row = kwargs .pop ("row" , None )
801+ row = [row ] if row is not None else None
802+
803+ cols = kwargs .pop ("col" , None )
804+ cols = [cols ] if cols is not None else None
805+
806+ secondary_ys = kwargs .pop ("secondary_y" , None )
807+ secondary_ys = [secondary_ys ] if secondary_ys is not None else None
808+
809+ return {** kwargs , "rows" : row , "cols" : cols , "secondary_ys" : secondary_ys }
810+
797811 def add_trace (
798812 self ,
799813 trace : Union [BaseTraceType , dict ],
@@ -955,17 +969,22 @@ def add_trace(
955969 # Hence, you first downsample the trace.
956970 trace = self ._check_update_trace_data (trace )
957971 assert trace is not None
958- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
972+ return super (AbstractFigureAggregator , self ).add_traces (
973+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
974+ )
959975 else :
960976 self ._print (f"[i] NOT resampling { trace ['name' ]} - len={ n_samples } " )
961977 # TODO: can be made more generic
962978 trace .x = dc .x
963979 trace .y = dc .y
964980 trace .text = dc .text
965981 trace .hovertext = dc .hovertext
966- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
967-
968- return super (self ._figure_class , self ).add_trace (trace , ** trace_kwargs )
982+ return super (AbstractFigureAggregator , self ).add_traces (
983+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
984+ )
985+ return super (AbstractFigureAggregator , self ).add_traces (
986+ [trace ], ** self ._add_trace_to_add_traces_kwargs (trace_kwargs )
987+ )
969988
970989 def add_traces (
971990 self ,
@@ -1152,8 +1171,8 @@ def replace(self, figure: go.Figure, convert_existing_traces: bool = True):
11521171 )
11531172
11541173 def construct_update_data (
1155- self ,
1156- relayout_data : dict
1174+ self ,
1175+ relayout_data : dict ,
11571176 ) -> Union [List [dict ], dash .no_update ]:
11581177 """Construct the to-be-updated front-end data, based on the layout change.
11591178
0 commit comments