Как исправить 'Ошибка: <rect>Ширина атрибута: Ожидаемая длина, "7.33929396359861 ...".в Сравнение нескольких серий - PullRequest
0 голосов
/ 06 июня 2019

Я передаю динамические данные на биржевую диаграмму, как показано в коде ниже, и я получаю сообщение об ошибке.

Я пытался получать данные в течение более длительных периодов времени, и это работает, но мне нужно получать в короткие сроки.

ngDoCheck() {
      this._inputPayloads.forEach((elt) => {
        if (this.objDiffer[elt.cookieWidget] === undefined) {
          this.objDiffer[elt.cookieWidget] = this.differs.find(elt).create<null, null>();
        } else {
          const objChanges = this.objDiffer[elt.cookieWidget].diff(elt);
          if (objChanges !== null) {
            if (elt.payload !== undefined && elt.dataServiceType === 'getHistoricalData') {
              this.chart.addSeries(this.mapHistoricalData(new HistoricalData().deserialize(JSON.parse(elt.payload))), true);
            } else if (elt.payload !== undefined && elt.dataServiceType === 'getRealTimeData') {
              const parsedPayload = JSON.parse(elt.payload);
              const serieName = parsedPayload.deviceId + '/' + parsedPayload.iobjectId + '/' + parsedPayload.dataId;
              const serie = this.chart.series.filter(srie => srie.name === serieName)[0];
              if (serie !== undefined) {
                console.log(parsedPayload.timestamp, parsedPayload.value);
                serie.addPoint([parsedPayload.timestamp, parseFloat(parsedPayload.value)], true);
              } else {
                console.log(parsedPayload.timestamp, parsedPayload.value);
                const seriesPart: any = {
                  name: serieName,
                  data: [parsedPayload.timestamp, parseFloat(parsedPayload.value)]
                };
                this.chart.addSeries(seriesPart, true);
              }
            }
          }
        }
      });
    }
this.chart = Highcharts.stockChart('container' + this.cell.widget.id, {

        chart: {
          width: null,
          height: null
        },
        rangeSelector: {
          selected: 4
        },

        yAxis: {
          plotLines: [{
            value: 0,
            width: 2,
            color: 'silver'
          }]
        },

        plotOptions: {
          series: {
            compare: 'percent',
            showInNavigator: true
          }
        },
        series: [],



      });

Я передаю данные каждые 500 миллисекунд. Это пример данных, напечатанных в приведенных выше строках кода console.log:

 1. 1559830450655 "133"
 2. 1559830451154 "110"
 3. 1559830451154 "113"
 4. 1559830451655 "100"
 5. 1559830451655 "118"
 6. 1559830452155 "110"
 7. 1559830452155 "133"
 8. 1559830452655 "120"
 9. 1559830452655 "113"
 10. 1559830453153 "125"
 11. ...

При увеличении времени до 1000 миллисекунд это работает.

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