Live Chart with Zooming - CanvasJS JavaScript Charts

Live Chart with Zooming - 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 dps = []; // dataPoints

var chart = new CanvasJS.Chart("chartContainer",{
  zoomEnabled: true,
  title :{
    text: "Live Random Data"
  },			
  data: [{
    type: "line",  
    markerType: "none",
    dataPoints: dps
  }]
});

var xVal = 0;
var yVal = 100;	
var updateInterval = 300;
var dataLength = 100; // number of dataPoints visible at any point

var updateChart = function (count) {
  count = count || 1;
  // count is number of times loop runs to generate random dataPoints.

  for (var j = 0; j < count; j++) {	
    yVal = yVal +  Math.round(5 + Math.random() *(-5-5));
    dps.push({
      x: xVal,
      y: yVal
    });
    xVal++;
  };
  
  chart.render();		
};

// generates first set of dataPoints
updateChart(dataLength); 

// update chart after specified time. 
setInterval(function(){updateChart()}, updateInterval);