<?php
header('Content-Type: ISO-8859-1');
?>
<!DOCTYPE html>
<html>
<head>
<title>A basic Bar chart using (column based) CSV data</title>
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A basic example of an RGraph Bar chart that uses AJAX to fetch a CSV file and then parses it with JavaScript. Instead of each row being a dataset - this CSV holds the data as columns" />
<meta name="googlebot" content="NOODP">
<link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
<!-- 1/3. Include the RGraph libraries -->
<script src="../libraries/RGraph.common.core.js" ></script>
<script src="../libraries/RGraph.common.key.js" ></script>
<script src="../libraries/RGraph.line.js" ></script>
</head>
<body>
<h1>A basic Bar chart using CSV data (with column based data)</h1>
<!-- 2/3. This is the canvas that the graph is drawn on -->
<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
<!--
3/3. This creates and displays the graph. As it is here, you can call this from the window.onload event,
allowing you to put it in your pages header.
-->
<script>
window.onload = function ()
{
/**
* This is the callback for the AJAX request
*/
var callback = function ()
{
// Parse the AJAX result text
var text = this.responseText.split(/\r?\n/);
var labels = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'];
var data = [];
var key = text[0].split(/,/);
for (var row=1; row<text.length; ++row) {
var cells = text[row].split(/,/);
for (var i=0; i<cells.length; ++i) {
if (!data[i]) data[i] = [];
// Add the value that hs been retrieved from the CSV file. Remember that because the CSV file is a
// text file - it needs to be converted to a number first
data[i].push(Number(cells[i]));
}
}
var line = new RGraph.Line({
id: 'cvs',
data: data,
options: {
textAccessible: true,
linewidth: 2,
shadowColor: '#ccc',
labels: labels,
hmargin: 5,
scaleDecimals: 2,
unitsPre: '�',
gutterLeft: 45,
key: key,
keyPosition: 'gutter',
keyPositionGutterBoxed: false
}
}).draw()
}
/**
* Make the AJAX call that fetches the CSV data
*/
RGraph.AJAX('/sample2.csv', callback);
};
</script>
<p>
This basic example uses AJAX to request a CSV file as with <a href="basic-csv.html">basic-csv.html</a> but unlike that example
this CSV file holds each data-set as columns instead of rows. <a href="/sample2.csv">You can see the CSV file here.</a>
</p>
<p>
<b>Note:</b>
In October 2013 a new CSV reader was added to RGraph. It makes reading CSV files much easier. You can read about
<a href="http://www.rgraph.net/docs/csv-file-reader.html">the new CSV reader</a> here.
</p>
<p></p>
This goes in the documents header:
<pre class="code">
<script src="RGraph.common.core.js"></script>
<script src="RGraph.common.key.js"></script>
<script src="RGraph.line.js"></script>
</pre>
Put this where you want the chart to show up:
<pre class="code">
<canvas id="cvs" width="600" height="250">
[No canvas support]
</canvas>
</pre>
This is the code that generates the chart:
<pre class="code">
<script>
window.onload = function ()
{
<span>/**
* This is the callback for the AJAX request
*/</span>
var callback = function ()
{
// Parse the AJAX result text
var text = this.responseText.split(/\r?\n/);
var labels = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'];
var data = [];
var key = text[0].split(/,/);
for (var row=1; row<text.length; ++row) {
var cells = text[row].split(/,/);
for (var i=0; i<cells.length; ++i) {
if (!data[i]) data[i] = [];
<span>// Add the value that hs been retrieved from the CSV file. Remember that because the CSV file is a
// text file - it needs to be converted to a number first</span>
data[i].push(Number(cells[i]));
}
}
var line = new RGraph.Line({
id: 'cvs',
data: data,
options: {
textAccessible: true,
linewidth: 2,
shadowColor: '#ccc',
labels: labels,
hmargin: 5,
scaleDecimals: 2,
unitsPre: '�',
gutterLeft: 45,
key: key,
keyPosition: 'gutter',
keyPositionGutter: {
keyPositionGutterBoxed: false
}
}).draw();
}
<span>/**
* Make the AJAX call that fetches the CSV data. You could just as easily
* use the jQuery AJAX functionality if you prefer
*/</span>
RGraph.AJAX('/sample2.csv', callback);
};
</script>
</pre>
<p>
<a href="https://www.facebook.com/sharer/sharer.php?u=http://www.rgraph.net" target="_blank" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=http://www.rgraph.net', null, 'top=50,left=50,width=600,height=368'); return false"><img src="../images/facebook-large.png" width="200" height="43" alt="Share on Facebook" border="0" title="Visit the RGraph Facebook page" /></a>
<a href="https://twitter.com/_rgraph" target="_blank" onclick="window.open('https://twitter.com/_rgraph', null, 'top=50,left=50,width=700,height=400'); return false"><img src="../images/twitter-large.png" width="200" height="43" alt="Share on Twitter" border="0" title="Mention RGraph on Twitter" /></a>
</p>
</body>
</html>