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, grouped by the class where we first use it. The "Used in" line under each one lists every class that uses it. 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.

Unit 1: Exploratory visualization: the building blocks

Week 1 · Fri Aug 28 · Lab 0: Python review

Palmer penguins

344 rows × 7 columns

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/9 Lab 6: statistical plots

Week 2 · Fri Sep 4 · Lab 1: pandas & data types

Smithsonian Holocene volcanoes

1,328 rows × 20 columns

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

Week 3 · Fri Sep 11 · Lab 2: grouping & aggregating

Fast food nutrition

515 rows × 18 columns · 48 KB

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

336,776 rows × 19 columns · 33 MB

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

Week 6 · Wed Sep 30 · Fixing bad charts

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

Unit 2: Explanatory visualization: storytelling

Week 9 · Fri Oct 23 · Lab 7 (async, family weekend): interactive EDA with Plotly: NBA 2025-26

NBA players and league averages, 2025-26

350 players · 661 roster rows · 80 seasons · 75 KB

Every NBA player from the 2025-26 regular season with at least 20 games and 15 minutes per game: team, position, age, and per-game stats (points, rebounds, assists, shooting). A roster table adds each player's team name, BPM, and VORP (one row per player per team, so traded players appear twice). A third table has league-wide per-game averages for every season since 1946-47. From Basketball-Reference (basketball-reference.com).

Used in: Fri 10/23 Lab 7 (async, family weekend): interactive EDA with Plotly: NBA 2025-26 (notebook + data, .zip)

Week 10 · Fri Oct 30 · Lab 8: network visualization: has the Senate become more polarized?

US Senate voting agreement, 1973-2024

693 senator rows · 34,254 pairs · 900 KB

Seven Senates, about every eight years from 1973-74 to 2023-24: a table of senators (name, party, state) and a table of every pair of senators in the same Senate with how often they voted the same way on roll-call votes. Built from Voteview's congressional roll-call records (voteview.com). Its pairs make it a natural fit for network charts.

Used in: Fri 10/30 Lab 8: network visualization: has the Senate become more polarized? (notebook + data, .zip)

Week 11 · Fri Nov 6 · Lab 9: sketch a data story, then make it interactive (ipywidgets)

Gapminder

1,704 rows × 8 columns

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 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

Movie ratings: Fandango vs. critics

146 rows × 22 columns · 15 KB

146 films from 2015 with their ratings on Fandango, Rotten Tomatoes (critics and users), Metacritic (critics and users), and IMDb, plus versions rescaled to five stars. From FiveThirtyEight's data repository (github.com/fivethirtyeight/data).

Used in: Fri 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

US births by day, 2000-2014

5,479 rows × 5 columns · 97 KB

The number of births in the US on every day from 2000 to 2014 (year, month, day of month, day of week), from Social Security Administration data. From FiveThirtyEight's data repository (github.com/fivethirtyeight/data).

Used in: Fri 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

College majors and earnings

173 rows × 21 columns · 27 KB

173 college majors with the number of recent graduates, share of women, employment and unemployment rates, and median and percentile earnings, from the American Community Survey. From FiveThirtyEight's data repository (github.com/fivethirtyeight/data).

Used in: Fri 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

Bechdel test and box office, 1970-2013

1,794 rows × 15 columns · 208 KB

1,794 films from 1970 to 2013: whether each passes the Bechdel test (and why not, if it fails), with budget and domestic and international gross, also in 2013 dollars. From FiveThirtyEight's data repository (github.com/fivethirtyeight/data).

Used in: Fri 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

Airline safety, 1985-2014

56 rows × 8 columns · 2 KB

56 airlines with their incidents, fatal accidents, and fatalities in 1985-1999 and 2000-2014, plus available seat-kilometers flown per week (for comparing airlines of different sizes). From FiveThirtyEight's data repository (github.com/fivethirtyeight/data).

Used in: Fri 11/6 Lab 9: sketch a data story, then make it interactive (ipywidgets)

Week 12 · Fri Nov 13 · Lab 10 (light): annotating charts in matplotlib

Great British Bake Off: bakers and judging, 2017-2025

678 rows × 16 columns

One row per baker per episode for UK series 8-16 (the Channel 4 years; the file uses Netflix numbering, 5-13): technical-challenge rank, Star Baker and elimination, and a score (-1, 0, +1) for the bake, flavor, and looks of each signature and showstopper bake. The scores were hand-coded by one fan from rewatched episodes; results come from Wikipedia. From Nathan Giusti's BakeOff project (github.com/nathangiusti/BakeOff).

Used in: Fri 11/13 Lab 10 (light): annotating charts in matplotlib

Great British Bake Off: viewers per episode, 2010-2019

94 rows × 11 columns

UK viewers (millions) for every episode of series 1-10, within 7 and 28 days of broadcast, with air dates. The show moved from the BBC to Channel 4 in series 8. BARB figures collected in Alison Hill's bakeoff R package, shared by TidyTuesday (2022-10-25).

Used in: Fri 11/13 Lab 10 (light): annotating charts in matplotlib