Не могу назвать высоту баров в гистограмме D3 v3 - PullRequest
0 голосов
/ 17 апреля 2020

У меня работает гистограмма с d3.v3, и я хочу найти процент данных ниже порогового значения. Я пытаюсь получить высоту баров, но это не работает, и я не уверен, что я делаю неправильно.

Вот рабочая JSFiddle .

Вот соответствующий код.

 d3.selectAll("rect")
      .attr("fill", function(d) {
        if (d.x <= (linePosition)) {
          return highColorScale(d.y);
        } else {
          return lowColorScale(d.y);
        }

      })
      .style("stroke", function(d) {
        if (d.x <= linePosition) {return lowColorScale(d.y);}
        else {return highColorScale(d.y)}
      })
      .style("stroke-width", "3px")
      .attr("class", (function(d) {
        if (d.x <= linePosition) {
          return 'belowThreshold'
        } 
        })) //Every rect below threshold gets class belowThreshold

 updateLegend()

  var belows = d3.sum(d3.selecAll('.belowThreshold').attr("height"));
  var total = d3.sum(d3.selectAll("rect").attr("height"));
  var percentage = (total / belows) * 100 //will replace with d3.format if I ever get it working

  //updated legend
        function updateLegend() {
                d3.selectAll('.legendText').text("x: " + scaledPosition + " " + percentage + "%");
                legend.text('scaledPosition')
            .attr("class", "legendText, absolute");
      }  

Любая и вся помощь приветствуется.

...