I feel it's a good practice to append the <g> for the axes first and then once the domains are set, you call them. Relevant changes made:

  1. Re-ordered:

  2. Calling axes once the domains are set:

    this.y0.domain([0, +d3.max(this.stackedSeries, function (d: any) {
       return d3.max(d, (d: any) => {
          return d[1]
  3. Removing "four" from the keys as it doesn't exist in the data:

      .keys(['one', 'two', 'three'])
  4. Included the stroke-dasharray transition to the line from your previous post

    var totalLength = thisLine.node().getTotalLength();
    thisLine.attr("stroke-dasharray", totalLength + " " + totalLength)
       .attr("stroke-dashoffset", totalLength);
      .attr("stroke-dashoffset", 0);  

Here's a fork of your code with the above changes:

Related Query

More Query from same tag