Create Graph using Highcharts from a CSV File
1. Add these JavaScript inclusions in the head of your page
2. Add the JavaScript to initialize the chart on document ready
3. Add the container
I also made some quite styling before the chart is loaded.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script><script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>
2. Add the JavaScript to initialize the chart on document ready
$(document).ready(function () {
var options = {
chart: {
renderTo: 'container',
type: 'line',
width: 800,
height: 450
},
title: {
text: 'Cabadbaran, Agusan del Norte'
},
subtitle: {
text: 'Source:CSU Phil-LiDAR 1',
x: -20
},
xAxis: {
categories: [],
minTickInterval: 15,
TickInterval: 15,
tickmarkPlacement: "on",
labels: {
padding: 10,
align: "center",
style: {
fontSize: "10px"
}
}
},
yAxis: [{ //primary y axis
min: 0,
max: 50,
title: {
text: "Rainfall Intensity, mm/hr."
},
reversed: !0,
plotLines: [{
value: 0,
width: 1,
color: "#808080"
}],
plotBands: [{
color: '#86e3e7',
from: 0,
to: 2.5,
label: {
text: 'Light',
align: 'left',
x: 10
}
}, {
color: '#8aa7fd',
from: 2.5,
to: 7.5,
label: {
text: 'Moderate',
align: 'left',
x: 10
}
}, {
color: '#8686dc',
from: 7.5,
to: 15,
label: {
text: 'Heavy',
align: 'left',
x: 10
}
}, {
color: '#fed88d',
from: 15,
to: 30,
label: {
text: 'Intense',
align: 'left',
x: 10
}
}, {
color: '#fe9686',
from: 30,
to: 100,
label: {
text: 'Torrential',
align: 'left',
x: 10
}
}]
}, { //secondary y axis
max: 10,
min: 0,
title: {
text: "Accumulated Rainfall, mm"
},
plotLines: [{
value: 0,
width: 1,
color: "#808080"
}],
opposite: !0,
reversed: !1
}],
gridLineDashStyle: 'solid',
series: []
};
$.get('https://dl.dropboxusercontent.com/u/75734877/AGUSAN_DEL_NORTE-CABADBARAN-RAIN2-.csv', function (data) {
var lines = data.split('\n');
options.series.push({
name: "Rainfall Intensity",
data: [],
tooltip: {
valueSuffix: " mm/hr."
},
color: "#0000ff"
}, {
name: "Accumulated Rainfall",
data: [],
tooltip: {
valueSuffix: " mm"
},
yAxis: 1,
color: "#ff0000"
});
$.each(lines, function (lineNo, line) {
var items = line.split(',');
if (lineNo > 0) {
$.each(items, function (itemNo, item) {
if (itemNo === 0) {
options.xAxis.categories.push(item);
} else if (itemNo === 2) {
options.series[0].data.push(parseFloat(item));
} else if (itemNo === 3) {
options.series[1].data.push(parseFloat(item));
}
});
}
});
var chart = new Highcharts.Chart(options);
});
});
3. Add the container
<div id="container" style="width: 800px; height: 450px; margin: 0 auto; border: 2px solid #343434;border-radius:5px"></div>
I also made some quite styling before the chart is loaded.
#container {
background-image: url('hex-loader.gif');
background-repeat:no-repeat;
background-position:center center;
}