Dynamic Chart with jQuery Slider / Scrollbar - CanvasJS JavaScript Charts

Dynamic Chart with jQuery Slider / Scrollbar - CanvasJS JavaScript Charts

by canvasjs

HTML

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<div id="chartContainer" style="height: 400px; width: 100%;"></div>
<div class="scroll-bar" style="width:100%;"></div>

JavaScript

var dps = [{x: 1, y: 10}, {x: 2, y: 13}, {x: 3, y: 18}, {x: 4, y: 20}, {x: 5, y: 17},{x: 6, y: 10}, {x: 7, y: 13}, {x: 8, y: 18}, {x: 9, y: 20}, {x: 10, y: 17}];

var chart = new CanvasJS.Chart("chartContainer", {
  title: {
    text: "Dynamic Chart with jQuery Slider / Scrollbar"
  },
  data: [{
    type: "line",
    dataPoints: dps
  }]
});
chart.render();

var current = 0;
var viewportSize = 20;
var xVal = dps.length + 1, yVal = 15;;
var updateChart = function () {
  yVal = yVal +  Math.round(5 + Math.random() *(-5-5))
  chart.options.data[0].dataPoints.push({
    x: xVal++,
    y: yVal
  });

  if(!chart.options.axisX)
    chart.options.axisX = {
      viewportMinimum: null,
      viewportMaximum: null
    };

  chart.options.axisX.viewportMinimum = $(".scroll-bar").slider("option", "value");
  chart.options.axisX.viewportMaximum = chart.options.axisX.viewportMinimum + viewportSize;
  $(".scroll-bar").slider("option", "max", current++);
  chart.render();
};

setInterval(function () {
  updateChart()
}, 500);


var scrollbar = $(".scroll-bar").slider({
  max:6,
  min:0,
  slide: function( event, ui ) {

  }
});