A data visualization curriculum of interactive notebooks.
See the codeA data visualization curriculum of interactive notebooks, using Vega-Lite and Altair. This repository contains a series of Python notebooks using Jupyter and marimo. The notebooks are online in a Jupyter book, runnable locally or online on Colab, Nextjournal, Deepnote, or molab. A corresponding set of JavaScript notebooks are available online on Observable.
Introduction to Vega-Lite / Altair
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Data Types, Graphical Marks, and Visual Encoding Channels
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Data Transformation
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Scales, Axes, and Legends
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Multi-View Composition
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Interaction
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Cartographic Visualization
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
The visualization curriculum can be used either online or on your local computer.
.ipynb notebooks in your local notebook environment. For example, if you have JupyterLab installed (v1.0 or higher is required), run jupyter lab within the directory containing the notebooks. With uv, you can run uv run jupyter lab (it automatically installs the dependencies)..py notebooks in the marimo directory using either marimo run marimo/notebook.py (to use the virtual environment you set up) or uv run marimo run marimo/notebook.py (to automatically install the dependencies in the notebook header).Depending on your programming environment (and whether or not you have a live internet connection), you may want to specify a particular renderer for Altair.
The book is built with Jupyter Book 2 and published to GitHub Pages automatically on every push to main via GitHub Actions.
To preview the book locally:
uv run jupyter-book start
To publish manually:
uv run jupyter-book build --html
npx -y gh-pages -n -d _build/html
To execute notebooks during the build, add the --execute flag:
uv run jupyter-book build --execute --html
Developed at the University of Washington by Jeffrey Heer, Dominik Moritz, Jake VanderPlas, and Brock Craft. Thanks to the UW Interactive Data Lab and Arvind Satyanarayan for their valuable input and feedback! Thanks also to the students of UW CSE512 Spring 2019, the first group to use these notebooks within an integrated course curriculum.
402 followers · starred Jan 2022
113 followers · starred Aug 2019
157 followers · starred Jan 2020
32 followers · starred Apr 2023
A data visualization curriculum of interactive notebooks.
See the codeA data visualization curriculum of interactive notebooks, using Vega-Lite and Altair. This repository contains a series of Python notebooks using Jupyter and marimo. The notebooks are online in a Jupyter book, runnable locally or online on Colab, Nextjournal, Deepnote, or molab. A corresponding set of JavaScript notebooks are available online on Observable.
Introduction to Vega-Lite / Altair
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Data Types, Graphical Marks, and Visual Encoding Channels
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Data Transformation
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Scales, Axes, and Legends
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Multi-View Composition
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Interaction
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
Cartographic Visualization
Jupyter Book |
Jupyter |
Colab |
Nextjournal |
Observable |
Deepnote |
Marimo
The visualization curriculum can be used either online or on your local computer.
.ipynb notebooks in your local notebook environment. For example, if you have JupyterLab installed (v1.0 or higher is required), run jupyter lab within the directory containing the notebooks. With uv, you can run uv run jupyter lab (it automatically installs the dependencies)..py notebooks in the marimo directory using either marimo run marimo/notebook.py (to use the virtual environment you set up) or uv run marimo run marimo/notebook.py (to automatically install the dependencies in the notebook header).Depending on your programming environment (and whether or not you have a live internet connection), you may want to specify a particular renderer for Altair.
The book is built with Jupyter Book 2 and published to GitHub Pages automatically on every push to main via GitHub Actions.
To preview the book locally:
uv run jupyter-book start
To publish manually:
uv run jupyter-book build --html
npx -y gh-pages -n -d _build/html
To execute notebooks during the build, add the --execute flag:
uv run jupyter-book build --execute --html
Developed at the University of Washington by Jeffrey Heer, Dominik Moritz, Jake VanderPlas, and Brock Craft. Thanks to the UW Interactive Data Lab and Arvind Satyanarayan for their valuable input and feedback! Thanks also to the students of UW CSE512 Spring 2019, the first group to use these notebooks within an integrated course curriculum.
402 followers · starred Jan 2022
113 followers · starred Aug 2019
157 followers · starred Jan 2020
32 followers · starred Apr 2023