Where the rebuilt trace holds a newly appended point, as the (row, col)
Trace.getStateAt must be asked for to announce it.
appendPointToMaidr answers this from the data alone, which is enough
for a trace that navigates its points in the order they arrived. A scatter
does not: it sorts by x and groups the duplicates, so the raw index it
carries in col addresses a different point, or a column that does not
exist — the announcement was then silent (the lookup threw and the
controller swallowed it) or named whichever point sorted last.
Asked of the trace rather than recomputed here, so the grouping rule stays
the model's and cannot drift from it.
Where the rebuilt trace holds a newly appended point, as the (row, col)
Trace.getStateAtmust be asked for to announce it.appendPointToMaidr answers this from the data alone, which is enough for a trace that navigates its points in the order they arrived. A scatter does not: it sorts by x and groups the duplicates, so the raw index it carries in
coladdresses a different point, or a column that does not exist — the announcement was then silent (the lookup threw and the controller swallowed it) or named whichever point sorted last.Asked of the trace rather than recomputed here, so the grouping rule stays the model's and cannot drift from it.