SourceForge.net  |  Sunyday.net
Last release: 1.27d
a PHP Class to build Charts
pChart 2.x is born, you can start moving your script to this new version. The new website is at www.pchart.net.
Overview  |  Screenshots  |  Download  |  Add-ons  |  Demonstration  |  Support  |  :: Documentation ::
Documentation Contents
Overview
Class definition
FAQ
Digging with pChart
Basic Examples
Advanced Examples
Graphs labels
Small "Fast Graphs"
Using pCache
Line style, Pics inclusion
Importing CSV data
Error reporting
Missing values
Playing with axis formats
Playing with backgrounds
High quality graphics
Customizing plot charts
2nd Y axis and shadows
Example #16 - Importing CSV data

This example shows how to import a CSV file containing headers and one data serie dedicated for the X Axis. Data importation is made using the ImportFromCSV function. The Y axis caption is set using the SetYAxisName function. Error reporting is turned on and messages are redirected on the graph calling the ReportWarnings("GD") function. X labels are rotated 90 left specifying the angle when calling the drawScale function.


Output :


Note on the dataset

Data are retrieved from a CSV file named CO2.csv. This file contains many data colums. The first row contains headers that will be used to name series (Months). Column #1 is used as index (Years). We are only loading row 1,2,3 and 4 from this file.

Click here to download CO2.csv

Source code :

 <?php
  // Standard inclusions   
  include("pChart/pData.class");
  include("pChart/pChart.class");

  // Dataset definition 
  $DataSet = new pData;
  $DataSet->ImportFromCSV("Sample/CO2.csv",",",array(1,2,3,4),TRUE,0);
  $DataSet->AddAllSeries();
  $DataSet->SetAbsciseLabelSerie();
  $DataSet->SetYAxisName("CO2 concentrations");

  // Initialise the graph
  $Test = new pChart(700,230);
  $Test->reportWarnings("GD");
  $Test->setFontProperties("Fonts/tahoma.ttf",8);
  $Test->setGraphArea(60,30,680,180);
  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
  $Test->drawGraphArea(255,255,255,TRUE);
  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,90,2);
  $Test->drawGrid(4,TRUE,230,230,230,50);

  // Draw the 0 line
  $Test->setFontProperties("Fonts/tahoma.ttf",6);
  $Test->drawTreshold(0,143,55,72,TRUE,TRUE);

  // Draw the line graph
  $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());
  $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255);

  // Finish the graph
  $Test->setFontProperties("Fonts/tahoma.ttf",8);   
  $Test->drawLegend(70,40,$DataSet->GetDataDescription(),255,255,255);   
  $Test->setFontProperties("Fonts/tahoma.ttf",10);
  $Test->drawTitle(60,22,"CO2 concentrations at Mauna Loa",50,50,50,585);
  $Test->Render("example16.png");   
 ?>
 
If you want to send the picture directly in a browser, replace the Render() command by Stroke().


Last updated on 07/27/2008