Basic Column chart from CSV Data ignoring Lines Starting with Specific Character - CanvasJS JavaScript Charts
Basic Column chart from CSV Data ignoring Lines Starting with Specific Character - 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
/*
// note : just for demo data is passed directly and not via ajax
$.ajax({
type: "GET",
url: "csvFile.csv",
dataType: "text",
success: function (dataCsv) { processData(dataCsv); }
});
*/
var data = [];
var dataCsv = "apple,70 orange,55 banana,50 mango,65 grape,95 pineapple,68 papaya,28\n#guava,70 pears,55 lychee,50 jackfruit,65"; //line starting with # will not be rendered
function addDataPoint(label,yValue){
var yData = parseInt(yValue);
var labelData = label;
var dataFlag = false;
for(var i=0;i<data.length;i++){
data[i].dataPoints.push({label:labelData, y:yData});
dataFlag = true;
}
if(!dataFlag){
data.push({
type : "column",
dataPoints : [
{label: labelData, y:yData}
]
});
}
}
function processData(allText) {
var allLinesArray = allText.split('\n');
for(var i=0;i<allLinesArray.length;i++)
if (!(allLinesArray[i].indexOf('#') !== -1)) {
var rowArray = allLinesArray[i].split(' ');
for (var j = 0; j <= rowArray.length - 1; j++) {
var rowData = rowArray[j].split(',');
addDataPoint(rowData[0],rowData[1]);
}
chart.render();
}
}
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Column Chart from CSV Data"
},
subtitles:[
{
text: "Ignoring Specific Line that starts with '#'"
}
],
data: data
});
processData(dataCsv);