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
Line graph
Cubic curve graph
Bar Graph
Stacked Bar Graph
Overlay Bar graph
Line + Area
Limits graph
Filled line graph
Filled cubic graph
Radar graph
Basic Pie graph
Exploded Pie graph
3D Pie graph
Scatter charts
Advanced Examples
Example #1 - Creating a line graph

This example shows how to create a simple line graph containing 3 data series. The graph function called is drawLineGraph() without extended parameters. A plot graph is superposed over the line layer using the drawPlotGraph() function. Running this script will create a example1.png file in the current directory.

Output :


Note on the dataset

Data are retrieved from a CSV file named bulkdata.csv. This file contains 4 colums : Column 0 is used as index, Column 1-2-3 are used as data series. This file does not contains header, Series name are set manualy using the SetSerieName command.

Click here to download bulkdata.csv

Source code :

  1. <?php  
  2.  // Standard inclusions        
  3.  include("pChart/pData.class");     
  4.  include("pChart/pChart.class");     
  5.    
  6.  // Dataset definition      
  7.  $DataSet = new pData;     
  8.  $DataSet->ImportFromCSV("Sample/bulkdata.csv",",",array(1,2,3),FALSE,0);     
  9.  $DataSet->AddAllSeries();     
  10.  $DataSet->SetAbsciseLabelSerie();     
  11.  $DataSet->SetSerieName("January","Serie1");     
  12.  $DataSet->SetSerieName("February","Serie2");     
  13.  $DataSet->SetSerieName("March","Serie3");     
  14.  $DataSet->SetYAxisName("Average age");  
  15.  $DataSet->SetYAxisUnit("�s");  
  16.    
  17.  // Initialise the graph     
  18.  $Test = new pChart(700,230);     
  19.  $Test->setFontProperties("Fonts/tahoma.ttf",8);     
  20.  $Test->setGraphArea(70,30,680,200);     
  21.  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);     
  22.  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);     
  23.  $Test->drawGraphArea(255,255,255,TRUE);  
  24.  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
  25.  $Test->drawGrid(4,TRUE,230,230,230,50);  
  26.    
  27.  // Draw the 0 line     
  28.  $Test->setFontProperties("Fonts/tahoma.ttf",6);     
  29.  $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
  30.    
  31.  // Draw the line graph  
  32.  $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());     
  33.  $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255);     
  34.    
  35.  // Finish the graph     
  36.  $Test->setFontProperties("Fonts/tahoma.ttf",8);     
  37.  $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);     
  38.  $Test->setFontProperties("Fonts/tahoma.ttf",10);     
  39.  $Test->drawTitle(60,22,"example 1",50,50,50,585);     
  40.  $Test->Render("example1.png");        
  41. ?>  
If you want to send the picture directly in a browser, replace the Render() command by Stroke().


Last updated on 05/15/2008