DS 2003: Communicating with Data
Fall 2026 · Mon/Wed/Fri · Sarah Groves · Syllabus · Computer setup guide · Canvas
Office hours: Fri 1–2 pm, Rm 437 (Sarah) · Wed 1–2 pm, Capital One Hub (Isabelle Lee, TA)
Every dataset we've used so far, in one place. If a lab reads a CSV, save it in the same folder as the notebook. The penguins and volcano data load straight from the web, so you don't need to download them.
Palmer penguins
Measurements of 344 penguins (three species) from three islands in the Palmer Archipelago, Antarctica: bill length and depth, flipper length, body mass, sex.
Or: pip install palmerpenguins, then from palmerpenguins import load_penguins
Used in: Fri 8/28 Lab 0: Python review; Fri 9/18 Lab 3: anatomy of a figure; Fri 9/25 Lab 4: encodings, color & chart types; Fri 10/23 Lab 7 (async, family weekend): interactive EDA with Plotly
Smithsonian Holocene volcanoes
The Smithsonian Global Volcanism Program's list of volcanoes active in the last ~12,000 years: name, country, region, type, elevation, and how strong the evidence of eruption is.
Used in: Fri 9/4 Lab 1: pandas & data types; Fri 9/18 Lab 3: anatomy of a figure
Fast food nutrition
Nutrition facts for 515 menu items from eight fast food chains: calories, fat, sodium, carbs, sugar, protein, and a few vitamins.
Used in: Fri 9/11 Lab 2: grouping & aggregating; Fri 9/18 Lab 3: anatomy of a figure; Fri 9/25 Lab 4: encodings, color & chart types; Mon 9/28 Question storm
NYC flights, 2013
Every flight that departed New York City's three airports (JFK, LGA, EWR) in 2013: scheduled and actual times, delays, carrier, origin, destination, distance.
Or: pip install nycflights13, then import nycflights13 as nf; nf.flights
Used in: Fri 9/11 Lab 2: grouping & aggregating; Fri 9/18 Lab 3: anatomy of a figure; Fri 9/25 Lab 4: encodings, color & chart types; Fri 10/23 Lab 7 (async, family weekend): interactive EDA with Plotly
Gapminder
Life expectancy, population, and GDP per capita for 142 countries, every five years from 1952 to 2007. Built into Plotly, so there's nothing to download.
Load it with: import plotly.express as px, then px.data.gapminder()
Used in: Fri 10/30 Lab 8: ipywidgets: controls & linked views; Fri 11/13 Lab 10 (light): annotating charts in matplotlib
Titanic passengers
One row per passenger on the Titanic's maiden voyage: ticket class, sex, age, fare, port of embarkation, and whether they survived. A classic for showing how categories combine.
Used in: Fri 11/13 Lab 10 (light): annotating charts in matplotlib; Mon 11/23 Project 2 work session
Superstore sales
Orders from a fictional US office-supply retailer (Tableau's classic sample data): region, segment, category and sub-category, sales, profit, quantity, order date. Its nested categories make it a good fit for tree charts.
Used in: Fri 11/6 Lab 9: hierarchical data: interactive treemaps & sunbursts; Mon 11/23 Project 2 work session
Bad chart redesign
Data behind the four charts from the Fixing bad charts activity (Wed 9/30) and Lab 5. Some are collected from the original source; where the raw data wasn't available, it's a synthetic best guess.
Chart A: US household income & financial assets (see chart)
Chart B: ranked game rating over time (see chart)
Chart C: Florida firearm murders & national crime rates (see chart)
Chart D: slime mold traits by group (synthetic) (see chart)
Used in: Wed 9/30 Fixing bad charts; Fri 10/2 Lab 5: bad chart redesign