Skip to content

flekschas/jupyter-scatter-tutorial

Repository files navigation

Jupyter Scatter Tutorial

SciPy 2023 Talk

👋 Welcome! Here you will find the notebooks for the Jupyter Scatter tutorial, first presented at SciPy 2023. These notebooks offer an in-depth guide to interactive scatter plot visualizations using jupyter-scatter. Specifically, the tutorial covers

  1. How to get started with Jupyter Scatter and visualize medium to large-scale datasets as interactive scatter plots.
  2. How to compose and link/synchronize multiple scatter plots
  3. How to integrate Jupyter Scatter with other widgets to build bespoke interfaces for:
    1. Exploring LLM-based sentence embeddings
    2. Comparing multiple embedding method of the Fashion MNIST dataset
    3. Browsing genomic data with HiGlass and loci embeddings
    4. Comparing a pair of single-cell embeddings by their label abundance differences
  4. How to use the tooltip feature, introduced in v0.15.0 (Added after the SciPy 2023):
    1. Tooltip with text previews for the LLM-based sentence embeddings
    2. Tooltip with image previews for the Fashion MNIST embedding
    3. Tooltip for a single-cell embededding
    4. Tooltip with audio previews for Google's Magenta Nsynth dataset
  5. How to add features to Jupyter Scatter through composition with other Jupyter Widgets or other Python libraries (Added after the SciPy 2023):
    1. Search
    2. Cluster Outlines and Contours

Note

You can find my SciPy '23 talk on YouTube and the accompanying slides at Speaker Deck.

Run the Tutorial

Online

If you have a Google/Gmail account, you can run this tutorial from your browser using Colab: Open In Colab.

Important

You need to manually install Jupyter Scatter when running the notebooks in Google Colab via !pip install jupyter-scatter. Make sure to not install jscatter as that is a different package.

Locally

To run the notebook locally we recommend setting up a custom environment using hatch as follows:

hatch shell

Finally, you can now run the notebooks with:

jupyterlab