Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Interactive charts with D3 and Angular
Rating: 4.8 out of 5(37 ratings)
445 students

Interactive charts with D3 and Angular

Create highly interactive charts using the power of D3 and Angular
Created byCarlos Moura
Last updated 6/2023
English

What you'll learn

  • Integrate D3 and Angular seamlessly from zero to pro
  • Add powerful interactive charts to you angular application
  • Learn D3 from scratch
  • Create basic and advanced interactive charts using D3js
  • Understand how SVG works and apply the knowledge to build more efficient visualizations
  • Reuse and simplify your code and charts by applying inheritance principles and extending base classes
  • Build your own chart library with line, area, bar and column, pie, doughnut, scatter charts, maps, bee swarms...
  • Expand your library with your own charts
  • Apply interactions to your visualizations
  • Create a dashboard using the charts developed in the course
  • Inject legends and tooltips in charts by using angular services

Course content

9 sections362 lectures24h 53m total length
  • Introduction2:31
  • Our project: The Charts Library6:43
  • Setting up the working environment2:29

    Having a good environment is a step further into developing quality software. We will install Visual Studio Code with some essentials extensions + node.js + Github desktop + Angular cli

  • Setting the environment - adding node and angular1:43
  • Creating our first Angular application: DashboardOne2:35

    Our first project, DashboardOne, will be our support to start delving into svg and introduce d3.js to angular.

  • Serving the angular project0:43
  • Adding the bootstrap navbar2:28

    Having created our project we will now add the d3 and bootstrap npm dependencies.

    We will be using bootstrap as a support library to simplify the html coding so we can focus more on d3.

  • DashboardOne - creating the framework2:40

    In this lesson we will create the dashboard component. We will be adding our test charts to visualize our work while learning about d3

  • Anatomy of a chart1:40

    Decompose charts into simple components: circles, lines, rectangles, and text, and position and style them to create interactive charts in Angular using D3. The same elements build different chart types.

  • Why SVG?1:07

    Why choosing the SVG format? What advantages does it bring to our charts?

  • Why SVG?
  • Creating a chart component2:30
  • Adding rectangles to the svg3:34

    Map a data array to SVG rects to create a column chart. Style the bars with inline or CSS and adjust x and y positions; note they render upside down.

  • SVG positioning system. Inverting the y3:02

    Invert the y axis in svg charts by computing each rectangle's y as the svg height minus its height, and generate the rectangles with an Angular for loop.

  • Binding data to the chart with Angular ngFor3:07
  • Scaling the chart - part 11:41
  • Scaling the chart - part 25:44

    Resize the rectangles to fit the svg by setting each width to the svg width divided by the number of rectangles, using angular elementRef and getBoundingClientRect to adapt on init.

  • Scaling the chart - part 3 - vertical scaling7:00

    Scale chart heights by mapping data values to pixels using a 250-pixel reference, compute the max with the spread operator, and update the rectangle heights and y positions.

  • Adding a padding between rectangles4:26
  • Why do we need margins?1:40
  • Adding margins to the chart3:12

    Define left, right, top, and bottom margins; compute inner width and height from the SVG dimensions; update dimensions accordingly and reserve space for legends.

  • SVG elements - Basic shapes: Line1:20

    Learn how SVG line elements use x1, y1 and x2, y2 to define start and end, style with stroke and stroke-dasharray, and animate all parameters with CSS.

  • SVG Elements - Basic shapes: Path1:30
  • SVG Path - Tutorial2:16

    Explore svg path commands with d3 and Angular, including move, line, horizontal and vertical lines, cubic and quadratic bezier curves, and arc parameters with flags to generate figures.

  • SVG Path - creating the project and adding a grid5:38

    Create an svg project to test svg path and add a grid. Add horizontal and vertical grid lines every 100 pixels, style with a dashed stroke, and control opacity.

  • SVG Path - polygons6:33

    Learn how to build polygons with SVG path commands, including move, line, horizontal and vertical variants, relative versions, and closing with Z, plus setting stroke and fill.

  • SVG Path - The [Q] Quadratic and [C] Cubic Bezier curves9:35

    Create non-polygon svg paths using quadratic and cubic bezier curves with control points and end points, styled with a blue stroke and white fill.

  • SVG Paths - A command - arcs6:07
  • SVG Elements - Basic shapes: Text7:30

    Explore the svg text element to label charts with x and y positioning, rotation, font size, color, and text anchor for alignment; also render curved labels with a text path.

  • Adding labels - the x label6:32
  • Adding axis to the chart - Horizontal axis3:55

    Add a horizontal axis by drawing an SVG line with x1, y1, x2, y2 coordinates, style it with CSS stroke on the x axis, and position it at y=50.

  • Receiving data as input6:49

    Learn to make a chart input-driven using ngOnChanges, resize on data changes, and refactor to SetParams for API data and D3 integration.

  • Data from API - the API service2:55
  • Api update: Important!!0:15
  • Data from API - getting and displaying data14:18

Requirements

  • Knowledge of javascript
  • Basic knowledge of Angular is an advantage. This is a beginner to intermediate course that will focus more on the integration of D3 into Angular.

Description

D3 is such a powerful language, however it can be difficult to start with.

Angular is an amazing framework but it lacks in data visualizations.

We will connect both worlds and create together amazing interactive charts that will bring your pages to another level.

For the absolute beginners, we will start from zero, understanding the d3 library, how it works, and how to use it. We will go into a depth analysis of the d3 update pattern so you can master the library and avoid the most common mistakes beginners do.

You will connect to api services and transform your data into the right format for each chart.

You will learn the SVG format and standards and how you can use it to create your own customized data visualizations.

We will use angular services and asynchronous data flows to inject data on the charts,

If you already know d3, you will learn about more advanced concepts, using the different d3 libraries, like the d3-array, the d3-force, voronoi partitions and others.

We will create legend and tooltip services, sending and receiving actions to charts and reacting to user inputs.

We will move into reusable charts by creating basic charts and extending them using inheritance.

Finally, you will end the course with a solid base to create your own reusable charts building upon the foundations of what you study here.

Welcome to the world of d3 and angular!


Who this course is for:

  • Angular developers that needs to build dashboards, visualize data or just enhance their apps with some nice charts
  • Developers who wants to create charts using d3
  • Beginners who want to learn d3 from scratch
  • Intermediate user who already know something about d3 but want to consolidade or expand their knowledge