Мне нужно отсортировать способ отображения всплывающей подсказки d3JS - PullRequest
0 голосов
/ 08 мая 2020

Я создаю диаграмму с зараженными случаями COVID-19 из Перу, но у меня возникают проблемы с сортировкой содержимого моей подсказки. Я имею в виду, мне нужно изменить города в порядке потомков, но на изображении вы можете видеть, что это не в порядке, поэтому сложно связать строки с содержимым всплывающей подсказки. Если вы знаете, как я могу отсортировать города по случаям в каждой точке диаграммы, я бы прочел вас.

Это код, который я использую:

 var cities = new Array()
    var values = new Array();
    // console.log(linetext)

    focus
      .select(".lineHover")
      .attr("transform", "translate(" + x(d.date) + "," + height + ")");

    focus
      .select(".lineHoverDate")
      .attr(
        "transform",
        "translate(" + x(d.date) + "," + (height + margin.bottom) + ")"
      )
      .text(formatDate(d.date));

    focus
      .selectAll(".hoverCircle")
      .attr("cy", e => y(d[e]))
      .attr("cx", x(d.date));

    focus
      .selectAll(".lineHoverText")
      .attr(
        "transform",
        "translate(" + x(d.date) + "," + height / 7.5 + ")"
      )
      .text(function(e) {
        if (d[e] > 0) {
          console.log(e, d[e])
          values.push(d[e]) //is the values one by one, I tried to push in an array
          cities.push(e) //is the cities in another array
          var a = 0
          //This is my failed try
          for (i in values){
            if(values[i] == d[e]){
              if (d[e]>a){
                a = d[e]
                return e.replace(/_cases|_deaths/, "") + ": " + formatValue(a);
              }
            }
          }
          //values.sort(function(a, b){return b-a});
          console.log(cities, values, a)

        } else {
          return "";
        }
      });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...