Black Lives Matter. Please consider donating to Black Girls Code today.

Performance considerations w.r.t. highly interactive plots (scatterplots) and large data sets

I’m trying to visualize relatively larg data sets (up to approx. shape of 1000 rows and 50000-1000000 cols) with highly interactive scatterplots (selection events, click events, etc.). The rapid prototyping runtime environment is JupyterNotebook + FigureWidget + Widgets on a powerful laptop. However the production runtime environment will be limited to a single machine as well (running the app on a server is no option right now). Scattergl worked quite fine as long as I did not need interaction. To beeing able to build in more interaction I had to switch to Scatter. With JupyterNotebook + FigureWidget the response time becomes already unacceptable. How does JupyterNotebook+FigureWidget compare with visualizing figures in JupyterLab, a dash app or a streamlit app? Are there patterns how to improve responsiveness (e.g. decreasing data size displayed in case no zooming, limitation of displayed data to selected data via zooming)?

Related posts:

Relevant references:

We generally recommend Datashader + Plotly.py for “big data” visualization: https://plotly.com/python/datashader/