Dynamic Bar chart with constant dataPointWidth and increase chart height accordingly which adds scrollbar - CanvasJS JavaScript Charts
Dynamic Bar chart with constant dataPointWidth and increase chart height accordingly which adds scrollbar - 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 chart = new CanvasJS.Chart("chartContainer", {
dataPointWidth: 30,
data: [
{
type: "bar",
dataPoints: [
{ x: 10, y: 71 },
{ x: 20, y: 55 },
{ x: 30, y: 50 },
{ x: 40, y: 65 },
{ x: 50, y: 95 },
{ x: 60, y: 68 },
{ x: 70, y: 28 },
{ x: 80, y: 34 },
{ x: 90, y: 14 }
]
}
]
});
chart.render();
handleChartHeight(chart);
var xVal = chart.data[0].dataPoints[chart.data[0].dataPoints.length - 1].x + 10;
var yVal = 70;
var updateInterval = 2000;
var updateChart = function () {
yVal = yVal + Math.round(5 + Math.random() *(-10-10));
chart.options.data[0].dataPoints.push({x: xVal,y: yVal});
xVal+=10;
chart.render();
handleChartHeight(chart)
};
setInterval(function(){updateChart()}, updateInterval);
function handleChartHeight(chart){
var dpsWidth = 30;
var plotAreaHeight = chart.axisX[0].bounds.height;
var chartHeight = plotAreaHeight + (2.5 * dpsWidth);
chart.options.dataPointWidth = dpsWidth;
chart.options.height = chartHeight;
}