I’m using Panel with a paramerterized class to display a set of time series Curves as holoviews Layout.
The number of datapoints per Curve may be quite larege (e.g. 5_000_000 and up). Therefore I use a decimate function to reduce datapoints for the browser (e.g. 4000 per Curve or less).
Example: 9 Curves are shown as Layout three plots with 3 overlayed curves.
Observations:
- When the number of curves ~< 5, then zooming, panning, etc. works smoothly, and the busy indicator on the panel page gets to an idle state normally
- When a larger number of curves is displayed, then zooming does not work anymore and the x_range gets reset to the original limits and only the zoomed-in part of the curve is shown on the original x_range (the bokeh server sends the update message to reset the x_range back to its initial setting). In addition the busy indicator does not go back to idle anymore and the cpu load is continueing to stay on a high level. The app is very unresponsive. This only goes back to normal when a full page refresh is done opening a new websocket.
- When I take out the decimate function and only display 5000 points, for example, everything works without any issue.
- When I run the app in a jupyter notebook, then the same problem does not occure, in the sense that zooming / panning works on the overlay that is selected. Zooming / panning works also for the other overlays in the complete layout, but the decimate update is not happing without mouse interaction on the other overlays (pan or zoom)
Are there any known issues when using decimate in a configuration together with panel/bokeh server?
Any idea how this problem can be resolved?
stack used:
Panel Server running on following versions:
Python 3.10.7, Panel: 0.14.1, Bokeh: 2.4.3, Param: 1.12.2
Any advice is appreciated
Franz