Data Visualization Online @ WPI 2018

Curran Kelleher
5 min readJul 31, 2018

--

Update: Check out the 2020 version of this course here:
https://datavis.tech/datavis-2020/

I’m teaching an online Data Visualization course this Fall at Worcester Polytechnic Institute. Many students are remote and transfer credit from WPI to other universities. So, graduate students from any university are welcome and encouraged to enroll (CRN 12105 Course: CS 573 1960). The course starts August 23 and is capped at 50 students, so enroll now!

In this course, you’ll learn how to transform data into meaningful graphical forms with Data Visualization. We’ll be creating visualizations using exclusively D3.js and Web technologies. We will not be using any Python or R in the course. You will need to learn and use modern JavaScript, HTML, and CSS. If you know other programming languages this transition will probably be pretty smooth, as these topics will be covered early on in the course. However if you have no programming background at all, is it not recommended you join this course.

Summary of last year’s course.

Here are some videos and links that give a feel for the course:

Course Content

The first part of the course will be about Static Visualizations. We’ll cover the fundamentals of both visualization design and D3.js. In order to get to work using D3.js, we’ll also cover Web development concepts in just enough detail to start using them, including JavaScript (ES6), CSS, and HTML.

A taxonomy of data types and attribute types will be presented from our excellent textbook Visualization Analysis and Design, with an orientation towards implementation of these concepts in D3.js. Visual Marks and Channels will also be covered, including how to best match attribute types to channels, rankings based on perception, and concepts particular to use of color. Each channel will be discussed alongside an introduction of the parts of D3.js required to utilize the channel. D3 Scales and Axes will be covered comprehensively.

A relatively comprehensive inventory of visualization idioms will be presented, including Bar Chart (and its variants, horizontal, stacked, grouped), Pie Chart, Rose (Coxcomb) Plot, Scatter Plot, Line Chart (single line, multiple lines), Area Chart, Stacked Area Chart, StreamGraph, Choropleth Map, Bubble Map, Pie Charts on a Map, Treemap, Icicle Plot, and Sunburst Plot. Lastly, the concept of Small Multiples will be introduced, which can be applied to any visualization idiom.

The second half of the course will be about Interactive Visualizations. Firstly, interactions within a single view will be covered, including Tooltips (with Voronoi Overlay in certain cases), Picking, Highlighting, Annotating, Changing Attributes, Pan & Zoom, Brushing, and integration with traditional user interface elements for changing visual encoding or interactive filtering.

The General Update Pattern of D3.js will be covered in depth, as this is required for dynamic visualizations. Also, encapsulation of visualizations as reusable modules. Dynamic and encapsulated variants of the visualization idioms presented in Part I will be presented.

Next, interaction patterns for multiple views will be covered, including Linked Highlighting, Crossfiltering, and Linked Navigation. Finally, considerations unique to the Web environment will be discussed, including features such as Deep Linking, Embedding, Responsiveness, and fetching data on demand.

Part I — Static Visualizations

  • Why Visualize Data
  • Input for Visualization: Data and Tasks
  • Data Categories: Tables, Cubes, Networks, Trees, Geospatial
  • Attribute Types: Categorical, Ordinal, Quantitative
  • Special Cases: Time, Geography, Latitude, Longitude
  • Loading and Parsing Data Tables with D3.js
  • Fundamentals of Scalable Vector Graphics
  • Marks: Points, Lines, and Areas with D3.js and SVG
  • Channels: Position, Length, Size, Shape, Color
  • Color: Hue, Saturation, Luminance
  • Mapping attribute types to channels effectively
A core reference figure from our textbook Visualization Analysis and Design by Tamara Munzner.
  • D3 Scales: Continuous, Ordinal, Sequential and more
  • D3 Geographic Projections
  • Scatter Plot and Bubble Chart
  • The Margin Convention
  • Axes and Axis Labels
  • Color and Size Legends
  • Bar Chart, Stacked and Grouped
A horizontal stacked bar chart: Religions of Largest 20 Countries
  • Pie Chart and Coxcomb Plot
  • Line Chart, Single and Multiple Lines
  • Area Chart, Stacked Area Chart, and Streamgraph
  • Geographic Data with D3.js
  • Line Simplification for Reducing Data Size
  • Choropleth Map
  • Bubble Map
Bubble Map with Tooltips: Cities on the Globe
  • Hexbinning
  • Pie Charts on a Map
  • Loading Hierarchical Data with D3.js
  • Node-Link Tree Layouts
    (tidy, cluster, horizontal, vertical and radial variants)
A radial node-link tree layout: World Countries Hierarchy
  • Treemap
  • Icicle Plot
  • Sunburst Plot
  • Small Multiples

Part II — Interactive Visualizations

  • The General Update Pattern
  • Animated Transitions
  • Encapsulation of Reusable Dynamic Components
  • Unidirectional Data Flow
  • Philosophy: Everything Arbitrary is Configurable
  • Standard Visualization Idioms
  • Geographic Visualization Idioms
  • Hierarchical Visualization Idioms
  • Small Multiples
  • Picking Marks by Hovering or Clicking
  • Using a Voronoi Overlay
  • Annotating on Hover with Tooltips
  • Highlighting Picked Marks
  • Pan & Zoom
  • Brushing
Interactive filtering with brushing: Linked Scatter Plot and Bar Chart
  • Responding to Resize
  • Text Input (e.g. Edit Axis Labels)
  • Color Picker (e.g. Edit Color Scale)
  • Slider (e.g. Edit Radius)
  • Dropdown Menus (e.g. Change Attributes, Filter)
Dropdown menus to control attributes of visual encoding: Scatter Plot with Menus
  • Displaying Multiple Views
  • Linked Highlighting
  • Crossfiltering
  • Linked Navigation
Linked navigation for zooming in the Streamgraph with Focus+Context brushing: UNHCR Streamgraph Explorer.
  • Responsiveness
  • Embedding
  • Deep Linking
  • Using Data APIs
  • Limitations of SVG
  • SVG Alternatives: Canvas, WebGL, Tile Maps
Using tile maps and vector layers to visualize population density: Cross Country Trip

In Summary

This course will illuminate both concepts in visualization design as well as the implementation details for these concepts. For academic and professional settings alike, this course can serve as a guide to the concepts, algorithms, and D3 APIs required to practice effective interactive Information Visualization. The course is relevant in general wherever data exploration, data-driven decision making, or data presentation is needed.

Admittedly, the content outline may be a bit ambitious for a 10 week online course. I’ll need to cover about 6 of those bullet points each week. However, I think it’s possible. I will strive to hit all the topics mentioned in at least some detail.

The plan is to deliver the lectures as public YouTube videos, and make the resulting code Open Source (MIT License). These videos will be screencasts of live-coding mixed with lecture-style presentations of slide decks, and maybe even some Whiteboard Jazz! The resulting implementations will be published on VizHub, and the student assignments/projects will involve forking and modifying those example implementations.

I’m really excited to launch the course this time around. If you’re a graduate student and can make it happen, enroll in the course!

--

--