Sorting JSON Data in Dynamic Chart - CanvasJS JavaScript Charts

Sorting JSON Data in Dynamic Chart - CanvasJS JavaScript Charts

by canvasjs

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/>
<!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

var dataLength = 0;
var dps = [];

var chart = new CanvasJS.Chart("chartContainer", {
	title: {
  	text: "Sorting JSON Data in Dynamic Chart"
  },
  data: [{
    type: "line",
    dataPoints: dps
  }]
});

chart.render();

updateEcg();


function updateEcg() {
  $.getJSON("https://api.npoint.io/9a8aa58385bcf255d0f5", function(result) {
    if (dataLength !== result.length) {
      for (var i = dataLength; i < result.length; i++) {
        dps.push({
          x: parseInt(result[i].valuex),
          y: parseFloat(result[i].valuey),
        });

        if (dps.length > 478) {
          dps.shift();
        }
      }
      dataLength = result.length;
      dps = sortDps(dps);
      chart.render();
    }
  });
}

function sortDps(dataPoints) {
  for (var i = 0; i < dataPoints.length - 1; i++) {
    if (dataPoints[i].x > dataPoints[i + 1].x) {
      var temp = dataPoints[i];
      dataPoints[i] = dataPoints[i + 1];
      dataPoints[i + 1] = temp;
      i = 0;
    }
  }
  return dataPoints;
}