Course notes
Gradescope
Canvas
Discussion forum
Course information
Overview
Syllabus
Support
Course staff
Schedule
Useful links
FAQ
Reference sheets
Slides
Course notes
Application exercises
Homework
HW 01 - Prefresher
Projects
Project tips + resources
Quizzes
Extra credit
Tutorials
Course notes
Modified
May 28, 2026
Annotating charts
The choice of where to place axis tick marks is a small detail that has a large effect on readability. Poorly chosen breaks can obscure patterns, force readers to…
Data wrangling (I)
We’ll use the
penguins
dataset throughout this lesson to demonstrate {dplyr} operations. If you need a reminder of its structure:
Data wrangling (II)
Data for real projects rarely lives in a single table. A hospital database might have separate tables for patients, visits, diagnoses, and prescriptions. A course system…
Deep dive: coordinates + facets
A
coordinate system
combines the
x
and
y
position aesthetics to produce a two-dimensional location on the plot. It also determines how axes and panel backgrounds are drawn.…
Deep dive: layers
Throughout this lesson we’ll use data on houses sold in Tompkins County, NY from 2022–24, scraped from Redfin.
Deep dive: stats + scales + guides
The World Bank publishes a rich and detailed set of socioeconomic indicators spanning several decades and dozens of topics. Here we focus on a few key indicators for the…
Deep dive: themes
Here is a chart made entirely with {ggplot2}, themed to match the Great British Bake Off:
From static to motion: Animated charts
Animation
adds a temporal or sequential dimension to a chart. The core question is whether that dimension carries meaningful information that a static chart cannot show.
Implementing accessibility
In early 2020, “flatten the curve” became one of the most widely shared data visualizations in history.
Interactive reporting with Shiny I
Shiny is a web application framework for R (and Python!) that allows you to build interactive web applications using R code. A Shiny app is a live, running R process: when a…
Interactive reporting with Shiny II
As apps grow, it is common to compute the same filtered dataset in multiple
render*()
calls:
Interactive reporting with Shiny III
Much of the interface provided by Shiny is based on Bootstrap — a widely used HTML/CSS/JavaScript framework. Shiny widgets, page layouts, and default styling all come from…
Interactivity in charts
The foundational principle of interactive data visualization comes from Ben Shneiderman’s 1996 paper “The eyes have it”:
Optimizing color spaces
Color in data visualization serves distinct purposes. Using color that matches its intended purpose makes charts easier to read; mismatched color usage introduces confusion.
Qualities of great visualizations
In his book
The Truthful Art
, Alberto Cairo argues that a great visualization must satisfy five interconnected qualities:
Telling the story with data
Data communication is not just about presenting facts. It is about telling a
story
— a sequence of observations presented in an order that creates understanding and, often…
The grammar of graphics
The
grammar of graphics
is a formal framework for describing statistical visualizations, originated by Leland Wilkinson in 2001
1
and extended by Hadley Wickham in his…
Visualizing spatial data (I)
Data visualization and cartography have been intertwined since at least 1854, when Dr. John Snow mapped cholera deaths in London’s Soho district:
Visualizing spatial data II
Raster maps provide a photographic background but give no access to the underlying geography. For complete control over the geographic elements of your geospatial…
Visualizing survey data
A
poll
is a survey or inquiry into public opinion conducted by interviewing a random sample of people.
Wrap-up: Where to go from here
The course learning objectives for INFO 3312/5312:
No matching items
Slides
Application exercises