была часть, которую я не мог понять!

ользуюd3.stack() создать нормализованную диаграмму с накоплением.
Но у меня возникают проблемы с доступом к соответствующим значениям исходного набора данных для всплывающей подсказки.

serie.selectAll("rect")
    .data(function(d) { return d; })
    .enter().append("rect")
      ...
      .on("mousemove", function(d){
          let coords = d3.mouse(svg.node());
          tooltip.style("left", coords[0] + "px");
          tooltip.style("top", coords[1] - 70 + "px");
          tooltip.style("display", "inline-block");
          tooltip.html("HOW TO ACCESS DATA HERE?");
        });

d этоArray[2] в этот момент со значениями, определяющими базовую линию / верхнюю линию,d.data является полным исходным объектом данных, но отсутствует информация о том, над каким стеком серии я в данный момент зависаю.
В идеале я хочу, чтобы всплывающая подсказка отображалась для набора данных, например{name:"item1", foo:10, bar:20}

value: 10
percentage: 33%

когда завис надfoo Прямоугольник.
Все примеры, которые я нашел, относятся к D3v3, где вы можете просто использоватьd.y чтобы получить доступ к соответствующему значению, но это больше не работает с D3v4.

Ответы на вопрос(1)

Ваш ответ на вопрос