использовать для цикла, чтобы нарисовать несколько SVG с D3 - PullRequest
0 голосов
/ 27 февраля 2019

Я использую набор данных для рисования диаграммы с использованием D3.

Но у меня есть некоторые проблемы с обработкой данных, когда метод для решения этой проблемы использует цикл for для рисования диаграммы.

Вот мой код:

Данные:

[
    var data = [

        {
            "id":100457,
            "name":"CHEUNG SIU MING",
            "collect_date": "2019-01-02 17:23:00",
            "movement":[
                {
                    "hospital":"CMC",
                    "case":"HN100000099",
                    "ward":"S15",
                    "bed":"56",
                    "start":"2019-01-01 18:45:00",
                    "end":""
                }
            ]
        },
        {
            "id":101369,
            "name":"MA CHING",
            "collect_date": "2019-01-03 09:51:00",
            "movement":[
                {
                    "hospital":"CMC",
                    "case":"HN100000133",
                    "ward":"S13",
                    "bed":"1",
                    "start":"2019-01-01 12:00:00",
                    "end":"2019-01-01 20:23:00"
                },
                {
                    "hospital":"CMC",
                    "case":"HN100000134",
                    "ward":"S13",
                    "bed":"6",
                    "start":"2019-01-02 07:34:00",
                    "end":"2019-01-02 19:13:00"
                },
                {
                    "hospital":"CMC",
                    "case":"HN100000134",
                    "ward":"S15",
                    "bed":"11",
                    "start":"2019-01-02 19:13:00",
                    "end":""
                }
            ]
        }
    ];

Печать кода штриховой диаграммы:

for (var n=0; n< data.length;n++){
     svg.selectAll("rect")
          .data(data[n].movement)
          .enter()
          .append("rect")
          .attr("x",function(d,i){
                return linear((new Date(d.start) - starttime)/cal_hour);
          })
          .attr("y",function(d,i){
                return yScale(i);
          })
          .attr("width",function(d){
             if (d.end =="")
                return linear((endtime-new Date(d.start))/cal_hour);
              else
                return linear((new Date(d.end)-new Date(d.start))/cal_hour);
          })
          .attr("height",rectHeight-2)
          .attr("fill",function(d){return ordinal(d.ward)});
     }

МОЙ код работает, но он печатает только первыйнабор данных, что означает только запуск данных [0]. часть перемещения.В чем проблема?Я пытаюсь использовать console.log, проверьте это, цикл for успешно выполнен 2 раза.

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