Skip to content

Data Visualization and D3.js

Free Course

Communicating with Data

Related Nanodegree Program

Introduction to Programming

In collaboration with
  • Zipfian

About this course

Learn the fundamentals of data visualization and practice communicating with data. This course covers how to apply design principles, human perception, color theory, and effective storytelling to data visualization. If you present data to others, aspire to be an analyst or data scientist, or if you’d like to become more technical with visualization tools, then you can grow your skills with this course.

The course does not cover exploratory approaches to discover insights about data. Instead, the course focuses on how to visually encode and present data to an audience once an insight has been found.

This course is part of the Data Analyst Nanodegree.

What you will learn

  1. Visualization Fundamentals
    • Learn about the elements of great data visualization.
    • Meet data visualization experts, learn about data visualization in the context of data science.
    • Learn how to represent data values in visual form.
  2. Building Blocks
    • Learn how to use the open standards of the web to create graphical elements.
    • Select elements on the page, add SVG elements, and how to style SVG elements.
    • Instructor Notes throughout this lesson are available if you have little or no experience with HTML and CSS.
  3. Design Principles
    • Which chart type to use for a data set.
    • Colors to avoid when making graphics.
    • How to determine if a graphic is effective.
  4. Dimple js
    • Create graphics using the Dimple JavaScript library.
    • Learn about this library as a gentle coding introduction before learning about D3.js.
    • Produce great graphics with minimal code and interactivity without any extra effort.
  5. Narratives
    • Learn how to incorporate different narrative structures into your visualizations.
    • Learn about bias in the data visualization process and learn how to add context.
  6. Animation and Interaction
    • Learn how to leverage animation and interaction to bring more data insights to your audience.
    • Learn how to create a bubble map for the World Cup data set.

Prerequisites and requirements

Regardless of your programming background, you can learn about data visualization and design principles in Lesson 1a and Lesson 2a without the following recommended background.

To succeed in this course, you should to be familiar with basic programming principles, including data types (strings, arrays, booleans, etc.), if else statements, and for loops. You should also be able to describe concepts like functions and objects. Our Intro to Computer Science and Programming Fundamentals with Python courses are great places to get started.

Basic knowledge of HTML and CSS (structuring and styling a web page) is not required but highly recommended. We suggest taking the Intro to HTML and CSS course if you have no experience with HTML or CSS.

This course is unique in that the final project can be completed using either dimple.js or d3.js. The visualization library, dimple.js, is easier to use than d3.js and requires less background knowledge. Furthermore, a graphic can be created in considerably fewer lines of code using dimple.js as opposed to d3.js.

So why should you learn d3.js?

Data Driven Documents (d3.js) allows you to build highly customized graphics. If you would like to gain more technical skills and learn more about Javascript and open web standards, then you should complete Lesson 3 and Lesson 4 in order to prepare for the final project.

If you would like to complete the final project using d3.js, you should have some experience reading and using documentation. For example, you should be able to code a for loop in Javascript or be able to look up the syntax to work with strings and arrays in Javascript. We recommend taking the Javascript Basics course if you have little to no experience with Javascript.

See the Technology Requirements for using Udacity.

Why take this course?

Learn by doing! You will analyze existing data visualization and create new ones to learn about the field. At it’s core, data visualization is a form of communication. Learn how to be a great communicator and how to enable readers to walk away from your graphics with insight and understanding. This course also makes use of open web standards (HTML, CSS, and SVG) to create data visualizations.

You can also learn how to...

  • communicate clearly with the best visual representation of your data
  • tell stories, spark discussion, and create calls to actions for readers
  • design graphics like ones from the NYTimes and other media companies
  • how to use open web technologies to create an online portfolio of your work
  • use visualization libraries (dimple.js and D3.js) to create graphics

Learn with the best.

  • Ryan Orban
    Ryan Orban


  • Chris Saden
    Chris Saden


  • Jonathan Dinu
    Jonathan Dinu