Jupyter Scatter: Interactive Exploration of Large-Scale Datasets
Fritz Lekschas, Trevor Manz · The Journal of Open Source Software · 2024
Jupyter Scatter is a Python package for rendering scalable, interactive, and interlinked scatterplots to explore datasets in Jupyter Notebook/Lab, Colab, and VS Code (Figure 1).Thanks to its WebGL-based rendering engine (Lekschas, 2023), Jupyter Scatter can render and animate up to several million data points.The tool focuses on data-driven visual encodings and offers perceptually-effective point color and opacity settings by default.For interactive exploration, Jupyter Scatter features two-way zoom and point selections.Furthermore, it can compose multiple scatterplots and synchronize their views and selections, which is useful for comparing datasets.Finally, Jupyter Scatter's API integrates with Pandas DataFrames (McKinney, 2010) and Matplotlib (Hunter, 2007) and offers functional methods that group properties by type to ease accessibility and readability.Extensive documentation and how-tos can be found at https://jupyter-scatter.dev and the code is available at https://github.com/flekschas/jupyter-scatter.from matplotlib.colors import AsinhNorm, LogNorm scatter.opacity(0.5)scatter.size(by='Population',map=(1, 8, 10), norm=AsinhNorm()) scatter.color(by='Population',map='magma', norm=LogNorm(), order='reverse')To aid interpretation of individual points and point clusters, Jupyter Scatter includes legends, axis labels, and tooltips.These features are activated and customized via their respective methods.scatter.legend(True) scatter.axes(True,labels=True) scatter.tooltip(True, properties=['color', 'Latitude', 'Country'], preview='Name')