I’ve got a heatmap that takes a fair amount of time to render (about 10s, I’m already using a subset of the data). I’m visualising a user-selected region by drawing a rectangle shape inside the layout for the figure. Like this: https://plot.ly/python/shapes/ . So every time the user changes the region is takes about 10s to visualise it… this is obviously kind of frustrating.
I tried to speed things up by putting the old figure state into the callback; if only the selected region has changed then I re-use the “data” part from the old figure and only update the “layout”. This doesn’t seem to actually speed things up, though… I guess most of this time is rendering, not creating the Heatmap object. Looking here: Is it possible to update just `layout`, not whole `figure` of Graph in callback? indicates that this should have been obvious… but when I saw the “uid” hiding inside the “data” I thought maybe dash would figure out that the data was identical and save some time.
The above post is a year old… has updating layout-only been implemented by chance, and I just haven’t found the documentation on it?
Given this isn’t possible, is there a smarter way to draw a rectangle on top of an existing figure? I could put two axis on top of each other in the same figure (like this: https://plot.ly/python/graphing-multiple-chart-types/ ), but I’ll still need to render the whole figure in the callback, so I don’t think that will help. A complete second figure with transparent background would do it… but I’m not nearly good enough with CSS etc. to get them to line up on top of each other…