---
# System prepended metadata

title: Scipy 2024

---

# Scipy 2024


https://nyc2023.pydata.org/cfp/talk/9CGTC7/


In this tutorial we will explore Matplotlib's interactive capabilities by visualizing weather and climate data. We first build static bar charts, timeseries plots, 
and heatmaps, then show how to make those charts interactive by using an interactive backend. We use these charts to build up to a custom dashboard that links them together, and we finish by showing how to convert some interactions into an animation. In doing so, this tutorial will unpack some of the fundamental concepts that underlie the architecture of Matplotlib, hopefully providing attendees with the foundation for creating effective visualizations using Matplotlib.


Matplotlib is a big library, and it can be difficult to know where to start. This tutorial is a guided tour through many of the essential features and concepts of Matplotlib so you can get started making publication-quality, animated, and interactive figures. We will be using weather and climate data as a case study.

This schedule/dataset is subject to change, but the rough plan is:

# setup - 20 minutes
- data provided via url  - probably GHCN weather data and a climate reanalysis that has temperature and precipitaton 
- git clone and codespaces options

# Setting up the dashboard - 40 minutes
plotting api -> data, visual styling
- plots: 10 minutes each 
    - bar chart - temp
    - timeseries - temp
    - heatmap - temp
    - computational - hist or box or violin
    - activities:
        - change location, change time
        - add a scatter, add a histogram 

# interactive 1 - 60 minutes

interactive backends/out of the box:

- brush link - 20 minutes
    - plot two timeseries + scatter of t1 vs p1
    - set up the share: we show x, activity is set up y

- timeseries -> zoom/pan - 10 minutes
    - min max envelopes using fill_between 
    - activity: switch location

intro to the events system:
- checkbox for showing envelope - 30 minutes
    - activity: 
        * plot and turn off min and max independently

# break 15

# interactive 2 - 60 minutes 
- link two variables - 10 minutes 
    - marker on heatmap + timeseries
- heatmap -> 20 minutes
    - sliding bar on heatmap 
    - click on location on map, get time
    - click on time, get corresponding map

- expand both to region - 30 minutes 
    - package heatmap as a movie
    - grab a bunch of timeseries
    - make boxplot/violin/histogram
        - advanced: side by side violin 


# animation - 30 minutes
- convert interactive to movie
    
# wrap up - 15 minutes
- adhoc office hours



