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 ) {
}
});