A data visualization curriculum of interactive notebooks.

Overview

Data Visualization Curriculum

A data visualization curriculum of interactive notebooks, using Vega-Lite and Altair. This repository contains a series of Python-based Jupyter notebooks. The notebooks are online in a Jupyter book, runnable locally or online on Colab, Nextjournal, or Deepnote. A corresponding set of JavaScript notebooks are available online on Observable.

Curriculum

Table of Contents

  1. Introduction to Vega-Lite / Altair
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  2. Data Types, Graphical Marks, and Visual Encoding Channels
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  3. Data Transformation
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  4. Scales, Axes, and Legends
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  5. Multi-View Composition
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  6. Interaction
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

  7. Cartographic Visualization
    Jupyter Book | Jupyter | Colab | Nextjournal | Observable | Deepnote

Support

Getting Started

The visualization curriculum can be used either online or on your local computer.

Online

Local Installation

  1. Install Altair and a notebook environment. The most recent versions of these notebooks use Altair version 4.
  2. Download the notebooks from the releases page. Typically you will want to use the most recent release. (If you wish to use notebooks for Altair version 3, download the Altair v3.2 release.)
  3. Open the 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.

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.

Credits

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.

Comments
  • Build a Jupyter book

    Build a Jupyter book

    @domoritz Here is the Jupyter Book PR. I moved the notebooks to the doc folder and added CI to rebuild the book upon changes to this folder. You can have a peak at the rendered book from my branch here. I used the logo from your github organization for the book and a slightly modified version of the readme for the landing page (but please edit if this is not appropriate).

    close #13

    opened by joelostblom 9
  • Add Nextjournal notebooks

    Add Nextjournal notebooks

    Hi, I took the freedom to add those great Notebooks to Nextjournal! It has a nice way to publish notebooks and remembers all installed software, so all notebooks "just run" ;) If you already have an account, I can also transfer the ownership of those notebooks to you!

    Best, Simon

    opened by SimonDanisch 8
  • Chart sizing wrong in Nextjournal

    Chart sizing wrong in Nextjournal

    For example, see: https://github.nextjournal.com/uwdata/visualization-curriculum/blob/master/altair_interaction.ipynb

    Some of the chart views in the notebook are not properly sized (widgets are below the fold, or even whole charts are not properly captured). This may be a Nextjournal issue; don't know if there is something we can do on our end to fix this.

    @domoritz any ideas? I haven't used Nextjournal before and I think you merged these additions?

    opened by jheer 7
  • Permission to remix the material from this repo into our univeristy course

    Permission to remix the material from this repo into our univeristy course

    Hello! We would like to remix much of the material from this repo into one of our university courses (with accreditation of course) and I just wanted to double check if this is OK. The remixing will mostly entail reordering to fit with our curriculum and extending the material where we see fit. I saw that the license is BSD-3 for the repo, but just wanted to double check before going ahead with this.

    opened by joelostblom 4
  • replace rangeStep with `chart.properties(width={

    replace rangeStep with `chart.properties(width={"step": rangeStep})`

    Per the latest release notes

    image

    The current use of rangeStep is causing an error for people trying to run this notebook with the latest version of Altair. I tried to make the most minimal change possible to the notebook so that the diffs are human-readable. 🙇 Thank you so much for this very useful tutorial.

    cc/: @dansbecker

    opened by hamelsmu 4
  • [Altair-Intro] `alt.renderers.enable('jupyterlab')` is not a part of renderer discussion

    [Altair-Intro] `alt.renderers.enable('jupyterlab')` is not a part of renderer discussion

    In https://github.com/uwdata/visualization-curriculum/blob/master/altair_introduction.ipynb, there is a section about renderers on the top of the page:

    image

    Yet, alt.renderers.enable('jupyterlab') call is actually happening when we call chart the first time.

    image

    opened by kanitw 3
  • Width 'step' does not work

    Width 'step' does not work

    Great tutorial, very clear and helpful. Thanks!

    https://github.com/uwdata/visualization-curriculum/blob/master/altair_marks_encoding.ipynb

    This code is used a number of times, but does not seem to be valid.

    .properties(
        width={"step": 50} # adjust the step parameter
    )
    

    A numerical value does work: e.g. width=100 I could not find from the documentation how to apply the step

    opened by Juan-132 2
  • Show uwdata: Open Source Blogging Platform w/ GitHub Pages & Native Support For Jupyter and Altair

    Show uwdata: Open Source Blogging Platform w/ GitHub Pages & Native Support For Jupyter and Altair

    @jheer I really loved these tutorials on Altair, as they demystified Altair for me.

    I'm working with Jeremy Howard (@jph00) on fastpages

    The reason we created this is we wanted a blogging system that was easy to use but also open source, and where people could own their data. Plus, we wanted to support cool features like interactive charts & graphs in Altair! A summary of features is below, which can also be viewed on the README:

    image

    Sharing this incase it is interesting for your students, especially to share their cool visualization projects! Thank you 🙇

    opened by hamelsmu 2
  • Broken link for timeunits

    Broken link for timeunits

    The "complete list of time units" link in the "Time Units" section of altair_data_transformation.ipynb is broken.

    Should probably be replaced with: https://altair-viz.github.io/user_guide/transform/timeunit.html#user-guide-timeunit-transform

    opened by ltirrell 1
  • Language guidelines

    Language guidelines

    The University of Washington works hard to foster an inclusive and welcoming culture for everyone in the campus community.

    Unfortunately, looking over your GitHub repositories, I have identified language that can be considered offensive due to its racist origins. Specifically the branch names, but I imagine if I looked at the code itself, I would find more.

    Can you let me know when you’ll be adjusting the settings to be a inclusive product/service and follow University of Washington language guidelines?

    opened by ghost 1
  • Add Nextjournal option, take two

    Add Nextjournal option, take two

    Hi @domoritz! This adds the option to view & run these notebooks in Nextjournal. We made sure all notebooks are runnable as-is now. This supersedes #6.

    opened by mk 1
  • [Multi-View] Consider suggesting people to color axis title for dual axis chart

    [Multi-View] Consider suggesting people to color axis title for dual axis chart

    like in https://vega.github.io/vega-lite/examples/layer_dual_axis.html

    image

    The current example in the notebook doesn't make it clear which variable is which mark

    image

    (It's ok for people who follow the tutorial as they created it themselves, but once they copy this example to create charts and share with other audience, it would be confusing.)

    opened by kanitw 3
Releases(v1.1)
Owner
UW Interactive Data Lab
Visualization + Analysis
UW Interactive Data Lab
Simple, realtime visualization of neural network training performance.

pastalog Simple, realtime visualization server for training neural networks. Use with Lasagne, Keras, Tensorflow, Torch, Theano, and basically everyth

Rewon Child 416 Dec 29, 2022
Open-source demos hosted on Dash Gallery

Dash Sample Apps This repository hosts the code for over 100 open-source Dash apps written in Python or R. They can serve as a starting point for your

Plotly 2.7k Jan 07, 2023
Practical-statistics-for-data-scientists - Code repository for O'Reilly book

Code repository Practical Statistics for Data Scientists: 50+ Essential Concepts Using R and Python by Peter Bruce, Andrew Bruce, and Peter Gedeck Pub

1.7k Jan 04, 2023
Python+Numpy+OpenGL: fast, scalable and beautiful scientific visualization

Python+Numpy+OpenGL: fast, scalable and beautiful scientific visualization

Glumpy 1.1k Jan 05, 2023
Collection of scripts for making high quality beautiful math-related posters.

Poster Collection of scripts for making high quality beautiful math-related posters. The poster can have as large printing size as 3x2 square feet wit

Nattawut Phetmak 3 Jun 09, 2022
With Holoviews, your data visualizes itself.

HoloViews Stop plotting your data - annotate your data and let it visualize itself. HoloViews is an open-source Python library designed to make data a

HoloViz 2.3k Jan 04, 2023
A GUI for Pandas DataFrames

About Demo Installation Usage Features More Info About PandasGUI is a GUI for viewing, plotting and analyzing Pandas DataFrames. Demo Installation Ins

Adam Rose 2.8k Dec 24, 2022
An automatic prover for tautologies in Metamath

completeness An automatic prover for tautologies in Metamath This program implements the constructive proof of the Completeness Theorem for propositio

Scott Fenton 2 Dec 15, 2021
Render Jupyter notebook in the terminal

jut - JUpyter notebook Terminal viewer. The command line tool view the IPython/Jupyter notebook in the terminal. Install pip install jut Usage $jut --

Kracekumar 169 Dec 27, 2022
A central task in drug discovery is searching, screening, and organizing large chemical databases

A central task in drug discovery is searching, screening, and organizing large chemical databases. Here, we implement clustering on molecular similarity. We support multiple methods to provide a inte

NVIDIA Corporation 124 Jan 07, 2023
UNMAINTAINED! Renders beautiful SVG maps in Python.

Kartograph is not maintained anymore As you probably already guessed from the commit history in this repo, Kartograph.py is not maintained, which mean

1k Dec 09, 2022
Data Visualization Guide for Presentations, Reports, and Dashboards

This is a highly practical and example-based guide on visually representing data in reports and dashboards.

Anton Zhiyanov 395 Dec 29, 2022
Backend app for visualizing CANedge log files in Grafana (directly from local disk or S3)

CANedge Grafana Backend - Visualize CAN/LIN Data in Dashboards This project enables easy dashboard visualization of log files from the CANedge CAN/LIN

13 Dec 15, 2022
Decision Border Visualizer for Classification Algorithms

dbv Decision Border Visualizer for Classification Algorithms Project description A python package for Machine Learning Engineers who want to visualize

Sven Eschlbeck 1 Nov 01, 2021
Chem: collection of mostly python code for molecular visualization, QM/MM, FEP, etc

chem: collection of mostly python code for molecular visualization, QM/MM, FEP,

5 Sep 02, 2022
Functions for easily making publication-quality figures with matplotlib.

Data-viz utils 📈 Functions for data visualization in matplotlib 📚 API Can be installed using pip install dvu and then imported with import dvu. You

Chandan Singh 16 Sep 15, 2022
Learn Basic to advanced level Data visualisation techniques from this Repository

Data visualisation Hey, You can learn Basic to advanced level Data visualisation techniques from this Repository. Data visualization is the graphic re

Shashank dwivedi 16 Jan 03, 2023
Exploratory analysis and data visualization of aircraft accidents and incidents in Brazil.

Exploring aircraft accidents in Brazil Occurrencies with aircraft in Brazil are investigated by the Center for Investigation and Prevention of Aircraf

Augusto Herrmann 5 Dec 14, 2021
Small U-Net for vehicle detection

Small U-Net for vehicle detection Vivek Yadav, PhD Overview In this repository , we will go over using U-net for detecting vehicles in a video stream

Vivek Yadav 91 Nov 03, 2022
Statistical data visualization using matplotlib

seaborn: statistical data visualization Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing

Michael Waskom 10.2k Dec 30, 2022