Range Bar Chart with axisY as dateTime (Workaround) - CanvasJS JavaScript Charts
Range Bar Chart with axisY as dateTime (Workaround) - 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 dataPoints = [];
var chart = new CanvasJS.Chart("chartContainer",
{
title: {
text: "How long an event occurred for on a given day"
},
axisY:{
minimum: (new Date(2016, 0, 28, 12, 00)).getTime(),
interval: (1 * 60 * 60 * 1000),
labelFormatter: function(e){
return CanvasJS.formatDate(e.value, "H:mm");
},
},
toolTip:{
contentFormatter: function ( e ) {
return "<strong>" + e.entries[0].dataPoint.label + "</strong></br> Start: " + CanvasJS.formatDate(e.entries[0].dataPoint.y[0], "H:mm") + "</br>End : " + CanvasJS.formatDate(e.entries[0].dataPoint.y[1], "H:mm");
}},
data: [
{
type: "rangeBar",
dataPoints: dataPoints
}
]
});
$.get("https://codepen.io/anon/pen/GXZNNO.js", function(data) {
getDataPointsFromCSV(data);
chart.render();
});
function getDataPointsFromCSV(csv) {
var allLinesArray = csv.split("\n");
if( allLinesArray.length > 0 ){
for (var i = 0; i <= allLinesArray.length-1; i++) {
var rowData = allLinesArray[i].split(",");
dataPoints.push({ label: rowData[0].replace(/"/g, ''), y: [parseInt(rowData[1]), parseInt(rowData[2])]});
}
}
}