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 #11 - Exploded Flat Pie graphs

Pie chart are slightly differents than classical line / curve / plot chart.

First of all they can only accept one serie of data ( Serie1 in this example ). You can also specify in another serie the label associated to each points ( Serie2 in this example ). In this example we're manually feeding the series using the AddPoint() method of the pData class. Then we're associating Serie2 as the Abscise serie using the SetAbsciseLabelSerie() function. We're then calling the drawFlatPieGraphWithShadow() and drawPieLegend() functions to draw the graph. Shadow parameters are set using the setShadowProperties() function.

Running this script will create a example13.png file in the current directory.

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

  // Dataset definition 
  $DataSet = new pData;
  $DataSet->AddPoint(array(10,2,3,5,3),"Serie1");
  $DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May"),"Serie2");
  $DataSet->AddAllSeries();
  $DataSet->SetAbsciseLabelSerie("Serie2");

  // Initialise the graph
  $Test = new pChart(300,200);
  $Test->drawFilledRoundedRectangle(7,7,293,193,5,240,240,240);
  $Test->drawRoundedRectangle(5,5,295,195,5,230,230,230);

  // Draw the pie chart
  $Test->setFontProperties("Fonts/tahoma.ttf",8);
  $Test->setShadowProperties(2,2,200,200,200);
  $Test->drawFlatPieGraphWithShadow($DataSet->GetData(),$DataSet->GetDataDescription(),120,100,60,PIE_PERCENTAGE,10);
  $Test->drawPieLegend(230,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);

  $Test->Render("example13.png");
 ?>
 
If you want to send the picture directly in a browser, replace the Render() command by Stroke().


Last updated on 08/29/2008