Fullstack D3 Masterclass

The Fullstack D3 masterclass is the complete guide to D3. With dozens of code examples showing each step, you will gain new insights into your data by creating visualizations in this self-paced online course.

  • 4.3 / 5 (43 ratings)
  • Published
  • Updated
On demand video

10 hrs 51 mins

Video Lessons

77 Videos

Course Instructor
How The Course Works

01Remote

You can take the course from anywhere in the world, as long as you have a computer and an internet connection.

02Self-Paced

Learn at your own pace, whenever it's convenient for you. With no rigid schedule to worry about, you can take the course on your own terms.

03Community

Join a vibrant community of other students who are also learning with Fullstack D3 Masterclass. Ask questions, get feedback and collaborate with others to take your skills to the next level.

04Structured

Learn in a cohesive fashion that's easy to follow. With a clear progression from basic principles to advanced techniques, you'll grow stronger and more skilled with each module.

Course Overview

What You Will Learn
  • How to build your first D3 chart

  • Importance of information design

  • How to integrate D3 with Angular

  • When to use D3 - and when not to

  • How to animate and add interactions

  • How to create any visualization you can imagine

Charts communicate ideas with simplicity, clarity, and detail.

Once you're comfortable with D3 you can quickly:

  • understand key metrics at a glance
  • catch anomalies (before they turn into problems)
  • give key insights to your customers
  • and impress your boss and co-workers

Today, I will show you the exact methods I use to create beautiful, understandable data visualizations using D3.

Our students work at

  • salesforce-seeklogo.com.svgintuit-seeklogo.com.svgAdobe.svgDisney.svgheroku-seeklogo.com.svgAT_and_T.svgvmware-seeklogo.com.svgmicrosoft-seeklogo.com.svgamazon-seeklogo.com.svg

Sample Course Lessons

Course Syllabus and Content

Module 1

Making Your First Chart

12 Lessons 55 Minutes

  • 01Making Your First Chart
    Sneak Peek00:01:43

    We dig in right away, starting with a timeline of temperature over time. First, we need to get our bearings.

  • 02Loading the weather dataset
    Sneak Peek00:05:51

    First things first, we learn how to load our dataset and look at the structure.

  • 03Setting up our line chart
    Sneak Peek00:08:35

    We learn how to set up our chart - accessor functions are crucial for easy changes, documentation, and framing.

  • 04Drawing our chart
    Sneak Peek00:05:15

    To set up our chart environment, we learn why we need two containers: wrapper and bounds.

  • 05Creating our workspace
    Sneak Peek00:03:25

    We create our wrapper and learn about d3 selection objects.

  • 06Adding an SVG element
    Free00:04:28

    We learn how to create new elements inside of a d3 selection object.

  • We create our bounding box, and shift it to respect our margins.

  • 08Creating our scales
    Free00:10:06

    We learn about scales and create our first ones: our y and x scales.

  • 09Drawing the line
    Free00:06:27

    We learn about path SVG elements and how to construct a string for their d attribute.

  • 10Drawing the axes
    Free00:05:08

    We learn how to create axes and transform them into position.

  • Let's consolidate what we just learned with an exercise to play with this week.

  • 12Datasets
    Free 
Module 2

Making a Scatterplot

11 Lessons 54 Minutes

  • 01Making a Scatterplot
    Sneak Peek00:01:28

    We dive into making a slightly more complex chart: a scatter plot. In this lesson, we talk about why you would create a scatter plot and its basic anatomy.

  • 02Steps in drawing any chart
    Sneak Peek00:02:03

    We solidify our foundation by splitting our chart-creating code into seven general steps.

  • 03Step 1: Access data
    Sneak Peek00:01:57

    We talk through our first step: accessing our data.

  • The second step: creating chart dimensions. This time, we learn how to create a square chart that fits within any browser window.

  • 05Step 3: Draw canvas
    Sneak Peek00:02:59

    The third step: drawing our canvas. We create our wrapper & bounds, then shift them to respect our margins.

  • 06Step 4: Create scales
    Sneak Peek00:04:20

    The fourth step: creating our scales. We talk about scales in more depth, and learn about d3.extent() & .nice().

  • 07Step 5: Draw data
    Sneak Peek00:15:27

    The fifth step: drawing our data. This is an important lesson! We talk about data joins, which are one of the trickiest parts of d3, and necessary for updating our charts & binding our visualization to data.

  • 08Step 6: Draw peripherals
    Sneak Peek00:11:29

    Our sixth step: drawing peripherals. We draw our axes, learn about the text SVG element, and how to add (and rotate) labels.

  • 09Looking at our chart
    Sneak Peek00:01:55

    Our hard work completed, we sit back and talk about what insights our chart can teach us.

  • We learn how to create a custom color scale, then we color our circles based on another metric: cloud cover.

  • 11Week 2: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 3

Making a Bar Chart

11 Lessons1 Hours 13 Minutes

  • 01Making a Bar Chart
    Sneak Peek00:03:31

    Next, we embark on a mission to create a slightly more complex chart: a bar chart. We talk about what we can learn from a bar chart, and what a histogram is.

  • 02Access data
    Sneak Peek00:02:03

    Next, we grab our data and create our accessor function (only one this time!)

  • 03Create dimensions
    Sneak Peek00:02:49

    A hopefully familiar step by now: creating our chart dimensions.

  • 04Draw canvas
    Sneak Peek00:02:25

    Creating our wrapper and bounds elements.

  • 05Create scales
    Sneak Peek00:10:25

    We create our scales, but first, we learn how to split our data into equally-sized bins.

  • 06Draw data
    Sneak Peek00:08:35

    We finally get to draw our bars! We draw them in groups, so we can position them as well as labels.

  • 07Adding Labels
    Sneak Peek00:07:11

    We draw a label over each bar, showing the number of points within that bin.

  • 08Draw peripherals
    Sneak Peek00:14:28

    We draw a line depicting the mean of our distribution, as well as our axes.

  • 09Extra credit
    Sneak Peek00:08:58

    We talk about how to generalize our code, and change it so that we draw multiple histograms for different metrics.

  • 10Accessibility
    Sneak Peek00:13:13

    This is a great lesson, and one that's hard to find good content on. We talk about the ways to make our charts accessible to screen readers, and walk through changing our histogram.

  • 11Week 3: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 4

Animations and Transitions

6 Lessons 51 Minutes

  • 01Animations and Transitions
    Sneak Peek00:03:00

    We talk about the different ways we can animate changes in our charts, and rule out SVG .

  • 02CSS transitions
    Sneak Peek00:06:47

    We learn about CSS transitions and the different CSS transition properties, then run through a concrete example and look at how to debug them.

  • 03CSS transitions with a chart
    Sneak Peek00:08:14

    We add CSS transitions to our histogram, animating changes as the bars change.

  • 04d3.transition
    Sneak Peek00:22:12

    We learn about d3.transition, and talk about when we would use it instead of CSS transitions. We then update our histogram to animate using d3.transition.

  • 05Lines
    Sneak Peek00:11:41

    We talk through a more complex example: animating our line chart when it gets new data. This is trickier than it might seem at first!

  • 06Week 4: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 5

Interactions

7 Lessons1 Hours 19 Minutes

  • 01Interactions
    Free00:00:55

    Let's start talking about adding interactions to our charts!

  • 02d3 events
    Sneak Peek00:07:09

    We learn how to add interaction event listeners using our d3 selection objects, then run through a concrete example.

  • 03Destroying d3 event listeners
    Sneak Peek00:03:09

    We can't let our event listeners hang around forever - we learn how to clean up after ourselves and cancel old ones.

  • 04Bar chart
    Sneak Peek00:18:51

    We add a tooltip to our histogram. This involves creating a tooltip, updating its contents to show information about the hovered bar, and moving above the hovered bar.

  • 05Scatter plot
    Sneak Peek00:25:04

    We add a tooltip to our scatter plot. Along the way, we learn about d3.timeFormat and learn a great trick for making our tooltips feel smoother, using voronoi.

  • 06Line chart
    Sneak Peek00:24:19

    Lastly, we add a tooltip to our timeline. We talk about how to add a listener rectangle, d3.leastIndex(), and how to add a dot to mark our place.

  • 07Week 5: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 6

Data Visualization Basics

10 Lessons 49 Minutes

  • It's really important that we understand the fundamentals of data visualization design, and what kind of chart to create.

  • 02Types of data
    Sneak Peek00:04:52

    We talk about the different types of data: the main buckets of qualitative and quantitative metrics, and their sub-categorizations.

  • 03Ways to visualize a metric
    Sneak Peek00:04:49

    We talk about the different ways to visualize a single metric, and how to combine that with the different data types.

  • 04Chart design
    Sneak Peek00:02:58

    We talk through a few tips & tricks that I use when designing charts.

  • 05Example redesign
    Free00:07:43

    We run through a full redesign of a chart, learning about the motivation and implementation of each change.

  • 06Color scales
    Sneak Peek00:05:26

    Choosing colors is one of the hardest parts of designing a data visualization! We talk about the three main types of color scales, and related functions that are built into d3.

  • 07Custom color scales
    Sneak Peek00:04:48

    We learn how to create our own custom color scales and specify their color space.

  • 08Color spaces
    Sneak Peek00:09:33

    We learn about three color spaces (rgb, hsl, and hcl) and the pros and cons of each.

  • 09Color tips
    Sneak Peek00:04:36

    We talk about a few tips & tricks for choosing effective, accessible colors for our data visualizations.

  • 10Week 6: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 7

Advanced example

12 Lessons2 Hours 15 Minutes

  • 01Radar Weather Chart
    Free00:02:23

    Let's dive into a complicated data visualization: a circular chart showing overall weather for the whole year

  • 02Getting set up
    Sneak Peek00:07:16

    We're going to breeze through the first four steps: accessing our data, creating our dimensions, drawing our canvas, and creating our scales.

  • 03Adding gridlines
    Sneak Peek00:34:54

    We're going to skip step 5 and use step 6 to get our feet wet with angular math. We'll draw angular grid lines for each month, circular grid lines for temperature, and label both axes.

  • 04Adding freezing
    Sneak Peek00:02:17

    To ease into our drawing data step, let's start by adding a circle that shows what temperatures are below freezing.

  • 05Adding the temperature area
    Sneak Peek00:12:55

    We create a radial area shape, bounded by the min and max temperatures for each day. Then we create a gradient and use it to color our area.

  • 06Adding the UV index marks
    Sneak Peek00:08:26

    We add marks to show which days are above a certain UV index threshold.

  • 07Adding the cloud cover bubbles
    Sneak Peek00:07:38

    Next, we'll add our ring of circles around the outside to represent the amount of cloud cover for each day. We'll also learn something really important about visualizing data using circles.

  • Next, we learn about ordinal scales and create the inner ring of circles to show the precipitation probability and type for each day.

  • 09Adding annotations
    Sneak Peek00:20:09

    We'll add annotations to our chart to tell our viewer what the different parts of the chart are showing. To do this, we'll create a generic function, since there are so many things to label.

  • 10Adding the tooltip
    Sneak Peek00:30:51

    Onto our last step: adding interactions! The tooltip we'll build will be unlike any you've seen before - it will follow the mouse all the way around our chart, highlight the relevant data elements, and describe the weather for that hovered date.

  • 11Wrapping up
    Sneak Peek00:00:52

    A quick debrief! Congrats on making it through!

  • 12Week 7: Exercise
    Sneak Peek 

    Let's consolidate what we just learned with an exercise to play with this week.

Module 8

D3 + Javascript Frameworks

12 Lessons1 Hours 12 Minutes

  • We'll talk about the best way to incorporate d3 when using a javascript framework like React, Svelte, or Angular.

  • 02React.js
    Sneak Peek00:03:11

    We are introduced to React.js and learn a basic principle for combining d3 + React.

  • 03Digging in
    Sneak Peek00:04:48

    We walk through the structure of our React application, then dive into the first step of our chart drawing checklist: accessing our data

  • 04Creating dimensions in React
    Sneak Peek00:04:03

    Creating dimensions in React can be really easy! We use a custom hook for watching the size of our wrapper and automatically calculating the dimensions of our bounds.

  • 05Drawing our canvas in React
    Sneak Peek00:06:12

    We create our wrapper and bounds within our Chart component to prevent from having to repeat ourselves for every chart we create.

  • 06Creating our scales in React
    Sneak Peek00:03:39

    Next, we need to create our scales. We also create scaled accessor functions to pass to the children of our Timeline, so they don't need to know about our scales.

  • 07Drawing our data in React
    Sneak Peek00:05:26

    Next, we fill out our Line component for a flexible way to draw our data.

  • We take a naive approach to creating an Axis component

  • We learn an alternate, less hacky solution for creating an Axis component that lets React do all of the rendering.

  • We wrap up by talking about how to add interactions and look at the completed code for a Timeline, Scatter plot, and Histogram.

  • 11Using d3 with Angular.js
    Sneak Peek00:07:41

    We take a look at how to combine d3 + Angular, with a complete codebase.

  • 12Using d3 with Svelte.js
    Sneak Peek00:07:30

    We take a look at how to combine d3 + Svelte.js, with a complete codebase.

Module 9

Interviews

5 Lessons1 Hours 18 Minutes

  • 01Interviews
    Sneak Peek 

    Coming soon! Interviews with amazing experts in the data visualization field. You'll learn about how different people get into data visualization, what most excites them, and their tips & tricks.

  • 02Shirley Wu
    Sneak Peek00:16:01

    Shirley and I talk about her job title, how she got into data visualization, how working in industry is different than working as a freelancer, and her new book!

  • 03Ian Johnson
    Sneak Peek00:19:07

    Ian and I talk about his long history of building up the d3.js community, his day-to-day working at Observable, and the value of breaking projects down into small pieces.

  • 04Russell Goldenberg
    Sneak Peek00:14:45

    Russell Goldenberg talks to us about what it's like working at the Pudding, his journey from Comp Sci to creative computation, and drops some great tips for working on data viz projects.

  • 05Will Chase
    Sneak Peek00:28:42

    Will Chase talks us through how he got into data viz, the difference between work and freelance projects, and walks us through his most recent, wonderful visualization of hurricane names.

Subscribe for a Free Lesson

By subscribing to the newline newsletter, you will also receive weekly, hands-on tutorials and updates on upcoming courses in your inbox.

What Students are Saying

        Meet the Course Instructor

        Amelia Wattenberger

        Amelia Wattenberger

        👋 Hey! I'm Amelia, the author of this course. I'm a front-end developer at The Pudding

        Over the past ten years that I've been visualizing data, I've been perfecting my method and collecting helpful tricks. I'm here to jump-start your own journey!

        In Fullstack D3 and Data Visualization, I distill my hard-earned knowledge into bite-sized lessons.

        We'll start making charts right away, and learn new concepts and design theory as we go.

        Purchase the course today

        One-Time Purchase

        Fullstack D3 Masterclass

        $299$499$200.00 off
        Fullstack D3 Masterclass
        • Discord Community Access
        • Full Transcripts
        • Money Back Guarantee
        • Lifetime Access

        Frequently Asked Questions

        Who is this course for?

        If you know JavaScript and you need to build dashboards and you'd like to learn D3 as quickly and efficiently as possible.

        What if I need help?

        You can ask us questions anytime through the community Discord channel or by sending us a message.

        Newline Image

        Fullstack D3 Masterclass

        $299

        $499